【发布时间】:2018-07-28 05:42:02
【问题描述】:
假设我有 3 行数据:
id product_uuid version_uuid created_at
22 586d8e21b9529d14801b91bd 5a711a0094df04e23833d8ef 2018-02-10 19:51:15.075-05
23 586d8e21b9529d14801b91bd 5a711a0094df04e23833d8ef 2018-02-10 19:51:16.077-07
24 586d8e21b9529d14801b91bd 5a711a0094df04e23833d8ef 2018-02-11 19:51:15.077-05
我想通过created_at 列按天对它们进行分组。
SELECT created_at::date, COUNT(*)
FROM table_name
WHERE product_uuid = '586d8e21b9529d14801b91bd'
AND created_at > now() - interval '30 days'
GROUP BY created_at
ORDER BY created_at ASC
我希望这会产生 2 行:
created_at count
2018-02-10 2
2018-02-11 1
但我实际上得到了 3 行:
created_at count
2018-02-10 1
2018-02-10 1
2018-02-11 1
我意识到GROUP BY 仍在按细粒度时间戳分组,但我不确定如何让 Postgres 使用截断的日期。
【问题讨论】:
标签: sql postgresql select group-by