我的头两个星期六月销售数据,周一日期即6月1日,6月8日低于每周平均报告:红移
日期| count
2015-06-01 03:25:53 | 1
2015-06-01 03:28:51 | 1
2015-06-01 03:49:16 | 1
2015-06-01 04:54:14 | 1
2015-06-01 08:46:15 | 1
2015-06-01 13:14:09 | 1
2015-06-01 16:20:13 | 5
2015-06-01 16:22:13 | 1
2015-06-01 16:27:07 | 1
2015-06-01 16:29:57 | 1
2015-06-01 19:16:45 | 1
2015-06-08 10:54:46 | 1
2015-06-08 15:12:10 | 1
2015-06-08 20:35:40 | 1
我需要查找给定范围内发生的每周平均销售额。
复杂查询:
(some_manipulation_part), ifact as
( select date, sales_count from final_result_set
) select date_part('h',date)) as h ,
date_part('dow',date)) as day_of_week ,
count(sales_count)
from final_result_set
group by h, dow.
输出:
H | day_of_week |计数
3 | 1 | 3
4 | 1 | 1
8 | 1 | 1
10 | 1 | 1
13 | 1 | 1
15 | 1 | 1
16 | 1 | 8
19 | 1 | 1
20 | 1 | 1
如果我尝试将avg应用于上述最终结果,实际上并没有获取正确的答案!
(some_manipulation_part), ifact as
( select date, sales_count from final_result_set
) select date_part('h',date)) as h ,
date_part('dow',date)) as day_of_week ,
avg(sales_count)
from final_result_set
group by h, dow.
h | day_of_week |计数
3 | 1 | 1
4 | 1 | 1
8 | 1 | 1
10 | 1 | 1
13 | 1 | 1
15 | 1 | 1
16 | 1 | 1
19 | 1 | 1
20 | 1 | 1
所以我在给定的范围内有两个星期一,实际上并没有被它分开。我甚至不确定在红移内发生了什么。
创建一个'最小,完整,可验证示例'(http://stackoverflow.com/help/mcve)。例如,你可以从28天的事件中获得结果并将它们推送到临时表中。然后,您可以在临时表上运行最外层的查询,但也可以为我们提供示例输入,实际输出和预期输出。 – MatBailie
更新后的输出,请帮助我! – ErRoR
不知道我理解您的预期输出。例如;您在16小时有8次销售,但您的预期产出是1?不应该平均为4?另外,你提到一个日期范围,我们应该如何知道该范围是什么?如果范围是1日至21日,但15日(范围内的第3个星期一)没有任何价值,我们怎么知道除以3而不是2? – MatBailie