我在Postgres数据库中有大约5万行是用户和他们注册时的行。
我试图了解自今年年初以来有多少用户注册了一周中的每一天,例如:
1238 on Monday
3487 on Tuesday
1237 on Wednesday
日期条目示例:'2014-10-31 17:17:30.138579'
答案 0 :(得分:2)
提取工作日后的普通聚合查询。您可以使用to_char()
获取(默认为英语)工作日:
SELECT to_char(created_at, 'Day'), count(*) AS ct
FROM tbl
WHERE created_at >= date_trunc('year', now())
GROUP BY 1;
如果表现很重要,EXTRACT()
稍快一点:
SELECT EXTRACT(ISODOW FROM created_at), count(*) AS ct
FROM tbl
WHERE created_at >= date_trunc('year', now())
GROUP BY 1;
1 ..星期一,...,7 ..星期天。
答案 1 :(得分:1)
您可以使用EXTRACT(来自时间戳的DOW)来确定星期几。 0是星期天。 6是星期六。
示例:
SELECT EXTRACT(DOW FROM TIMESTAMP '2015-06-22 20:38:40');
结果是1(星期一)