【发布时间】:2016-03-15 07:41:39
【问题描述】:
这是我的bill表:
shop_id | billing_date | total
------------------------------
ABC | 2016-03-07 | 100
ABC | 2016-03-14 | 200
DEF | 2016-03-07 | 300
DEF | 2016-03-14 | 100
GHI | 2016-03-07 | 30
我希望每家商店有一条线,每周平均总数、当月总数和每月平均总数 .最终数据必须如下所示:
shop | weekly avg. | current month total | monthly avg.
-------------------------------------------------------
ABC | 150 | 300 | 300
DEF | 200 | 500 | 500
GHI | 30 | 30 | 30
我的问题是:是否可以直接从 SQL 查询中获取这些信息?
【问题讨论】:
-
是的,到目前为止您尝试过什么?请随时与我们分享。
-
我尝试过像这样按周分组:SELECT shop_id, avg(total) as week_avg FROM bill b GROUP BY shop_id, WEEKOFYEAR(billing_date);但我离解决方案还很远。我想我必须进行子查询,但不知道如何...
-
按周的 AVG 和按月的 AVG 之间存在矛盾,因为它位于一个结果行中 - 应该是哪一周?为什么ABC的月平均AVG是300——这家店的SUM和AVG有什么区别?
-
@mitkosoft 我的样本数据可能并不重要,因为这里只有一个月。对于每家商店,我想知道每周和每月的平均销售量。如果一家商店一月份总共赚了 500 美元,二月份总共赚了 300 美元,那么每月平均应该是 400 美元。希望我回答了你的问题,我的英语很差...
-
按月计算的 AVG 很清楚,按周计算的 AVG 是个问题 - 你想要什么作为最终结果?