【发布时间】:2020-08-19 09:42:46
【问题描述】:
我有一张小桌子 (TABLEA),它有两列 IDA 和 DATETIMEA。
表格
IDA DATETIMEA
1 2020-03-16 13:15:00
2 2020-03-17 15:25:00
3 2020-03-18 17:10:00
5 2020-03-19 11:44:00
5 2020-03-20 12:55:00
5 2020-03-21 19:35:00
7 2020-03-22 10:13:00
8 2020-03-22 15:25:00
8 2020-03-28 12:12:00
9 2020-03-29 17:55:00
10 2020-03-30 11:54:00
12 2020-03-30 15:35:00
12 2020-03-31 13:19:00
我正在尝试获取每天IDA 的总数、过去 7 天的总数和过去 30 天的总数。
预期输出
DATE DAY L7 L30
2020-03-16 1 1 1
2020-03-17 1 2 2
2020-03-18 1 3 3
2020-03-19 1 4 4
2020-03-20 1 5 5
2020-03-21 1 6 6
2020-03-22 2 8 8
2020-03-28 1 3 9
2020-03-29 1 4 10
2020-03-30 2 6 12
2020-03-31 1 7 13
我尝试将与日期相关的输出放在子查询中,但它们返回 0。
SELECT t.DATETIMEA::date date,
COUNT(t.*) "day",
(SELECT COUNT(w.*) FROM TABLEA w WHERE w.DATETIMEA::date BETWEEN w.DATETIMEA::date AND w.DATETIMEA::date - 7) week,
(SELECT COUNT(m.*) FROM TABLEA m WHERE m.DATETIMEA::date BETWEEN m.DATETIMEA::date AND m.DATETIMEA::date - 30) "month"
FROM TABLEA t
GROUP BY t.DATETIMEA::date
ORDER BY t.DATETIMEA::date
【问题讨论】:
-
12是真的重复还是错字? -
@GordonLinoff 是的,表明 IDA 不是唯一的
标签: sql postgresql datetime count date-arithmetic