由DOW划分的销售额(以日期和时间作为输入) - postgresql

时间:2017-09-13 11:22:05

标签: postgresql partitioning postgresql-9.5 weekday

已经在网上搜索了正确的回复,但找不到我想要的东西。

我有一个示例数据集如下:

日期---------------------------------销售数量

Saturday 9th September 13:22:00 ------ 1
Sunday 10th September 16:44:02  ------ 3 
Monday 11th September 12:00:00  ------ 2
Tuesday 12th September 13:04:34 ------ 4
Wednesday 13th September 15:84:04 ---- 3
Thursday 14th September 16:30:00 ----- 9
Friday 15th September 17:00:00  ------ 3
Saturday 16th September 18:00:03 ----- 5
Sunday 17th September 12:00:34 ------- 2

我希望输出为表格如下:

Day of week -------------- Count
Mon ---------------------- 2
Tues --------------------- 4
Wed ---------------------- 3
Thurs -------------------- 9
Fri ---------------------- 3
Sat ---------------------- 6
Sun ---------------------- 5

这是一个小样本,日期更进一步,但这应该给你一个想法。

我正在使用postresql,版本9.5.8

我尝试了不同的变体,例如date_trunc和partition(但可能没有正确使用它)。我一直得到错误的输出。从本质上讲,我希望能够制作星期几的条形图并计算。

我试过这个:

SELECT count(s.created_at), date_trunc('day', s.created_at)
FROM "sales" s 
GROUP BY date_trunc('day', s.created_at)
然而,

这给了我每个独特日的计数,而不是简单地用dow,无论日期如何。

提前谢谢。

1 个答案:

答案 0 :(得分:3)

https://www.postgresql.org/docs/current/static/functions-datetime.html

date_partextract应该:

SELECT count(s.created_at), extract(dow from s.created_at)
FROM "sales" s 
GROUP BY extract(dow from s.created_at)