gpt4 book ai didi

sql - 填写空日期

转载 作者:行者123 更新时间:2023-12-04 08:13:24 25 4
gpt4 key购买 nike

此查询返回特定日期范围之间按天创建的警报数。

SELECT CAST(created_at AS DATE) AS date, SUM(1) AS count
FROM ew_alarms
LEFT JOIN site ON site.id = ew_alarms.site_id
AND ew_alarms.created_at BETWEEN '12/22/2020' AND '01/22/2021' AND (CAST(EXTRACT(HOUR FROM ew_alarms.created_at) AS INT) BETWEEN 0 AND 23.99)
GROUP BY CAST(created_at AS DATE)
ORDER BY date DESC
结果: screenshot
填写缺少的日期(1/16、1/17、1/18 等)的最佳方法是什么?由于在那些日子里没有创建警报,这些结果偏离了我最终试图达到的每日平均值。
会不会是 generate_series询问?

最佳答案

是的,使用 generate_series() .我会建议:

SELECT gs.date, COUNT(s.site_id) AS count
FROM GENERATE_SERIES('2020-12-22'::date, '2021-01-22'::date, INTERVAL '1 DAY') gs(dte) LEFT JOIN
ew_alarms a
ON ew.created_at >= gs.dte AND
ew.created_at < gs.dte + INTERVAL '1 DAY' LEFT JOIN
site s
ON s.id = a.site_id
GROUP BY gs.dte
ORDER BY date DESC;
我不知道小时比较应该做什么。小时总是在 0 到 23 之间,所以我删除了这个逻辑。
注意:据推测,您想从 site 中计算一些东西。或 ew_alarms .这是预期的 LEFT JOIN如此 0可以退货。

关于sql - 填写空日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65836312/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com