繁体   English   中英

按日期计算组的计数

[英]Calculate counts of a group by date

我正在处理监狱数据,并希望找到在任何一天被拘留的人数。 数据在下面的图表中格式化,其中每一行代表一个囚犯的位置。 一个预订 ID 与一名囚犯相关联,释放日期是在监狱/监狱系统之外完成的囚犯释放日期。 因此,以预订 ID 123 为例,该囚犯最初于 2022 年 1 月 1 日入狱,2 月 4 日转移到监狱,3 月 6 日转回监狱,4 月 4 日返回监狱,并且然后在 6/2 完全发布。

*有些情况下发布日期为null,表示尚未发布。

Booking_ID 类型 日期 发布日期
123 监狱 2022 年 1 月 1 日 2022 年 6 月 2 日
123 监狱 2022 年 2 月 4 日 2022 年 6 月 2 日
123 监狱 2022 年 3 月 6 日 2022 年 6 月 2 日
123 监狱 2022 年 4 月 4 日 2022 年 6 月 2 日
456 监狱 2022 年 1 月 1 日 2022 年 6 月 2 日
456 监狱 2022 年 2 月 4 日 2022 年 6 月 2 日

我想要完成的是在任何一天,按类型计算任何一天的人数。 output 本质上应该是一张表格,其中包含从最早可用日期开始的每一天、监狱/监狱的类型和囚犯人数。 因此,在 2022 年 1 月 30 日,将有 2 人入狱。 2022 年 2 月 20 日,将有 2 人入狱。 我希望这是有道理的。 我想我可以做这样的事情作为开始,但除此之外我很难过:

from UNNEST(
        GENERATE_DATE_ARRAY(
            (select min(date) from base),
            current_date(),
            INTERVAL 1 DAY
        )
    ) as dt -- one row per date in the range

output 看起来像这样,最新的 output 直到当前日期:

日期 类型 数数
2022 年 1 月 30 日 监狱 2
2022 年 2 月 20 日 监狱 2
2022 年 7 月 7 日 监狱 0
2022 年 7 月 7 日 监狱 0

我设法解决了它。 在类型转移之间创建开始和结束日期范围,并通过加入日期表计算计数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM