今年每周创建的记录数量是多少?

时间:2015-06-22 02:50:16

标签: sql postgresql aggregate-functions date-arithmetic

我在Postgres数据库中有大约5万行是用户和他们注册时的行。

我试图了解自今年年初以来有多少用户注册了一周中的每一天,例如:

1238 on Monday
3487 on Tuesday
1237 on Wednesday

日期条目示例:'2014-10-31 17:17:30.138579'

2 个答案:

答案 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(星期一)