【问题标题】:Creating a count of items that fits a criteria at each snapshot in time在每个快照中及时创建符合条件的项目计数
【发布时间】:2022-07-28 22:44:23
【问题描述】:

我正在尝试创建一个 postgres 查询,它可以让我了解某个时间点的未决案例数量的快照。我有一个包含时间戳列表的表,这将是我将使用的时间快照。第二个表是一个案例列表,包含一个 CASE_OPEN_TIME 和一个 CASE_CLOSED_TIME。最终,我试图创建一个表,其中有一列包含快照时间戳,以及在该时间戳仍处于打开状态的案例数。感谢您对我如何解决此问题的帮助和建议。在此先感谢:)

SNAPSHOT
2022-07-10 10:00:00
2022-07-09 10:00:00
2022-07-08 10:00:00
2022-07-07 10:00:00
2022-07-06 10:00:00
2022-07-05 10:00:00
CASE_ID CASE_OPEN_TIME CASE_CLOSED_TIME
1 2022-07-05 04:00:00 2022-07-05 12:00:00
2 2022-07-06 09:00:00 2022-07-08 12:00:00
3 2022-07-08 09:00:00 2022-07-08 13:00:00
4 2022-07-10 08:00:00 2022-07-10 09:00:00

最终输出:

SNAPSHOT COUNT_OPEN_CASES
2022-07-10 10:00:00 0
2022-07-09 10:00:00 0
2022-07-08 10:00:00 2
2022-07-07 10:00:00 1
2022-07-06 10:00:00 1
2022-07-05 10:00:00 1

【问题讨论】:

    标签: postgresql


    【解决方案1】:

    如果您的快照表名为SNAPSHOT,而CASES 的情况不是您想要的结果

    SELECT
        SNAPSHOT.SNAPSHOT_TIME,
        COUNT(*) NR_CASES
    FROM
        SNAPSHOT LEFT OUTER JOIN CASES ON SNAPSHOT.SNAPSHOT_TIME >= CASE_OPEN_TIME AND SNAPSHOT.SNAPSHOT_TIME <= CASE_CLOSSED_TIME
    GROUP BY
        SNAPSHOT.SNAPSHOT_TIME
    

    即使没有案例,左外连接也会为您提供快照

    【讨论】:

      猜你喜欢
      • 2020-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-01
      • 1970-01-01
      • 2014-09-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多