在MySql中对一周中的连续天进行分组
我希望能够按周对销售表进行分组,但只能按前x个天数进行分组 我可以很容易地按周分组在MySql中对一周中的连续天进行分组,mysql,sql,group-by,Mysql,Sql,Group By,我希望能够按周对销售表进行分组,但只能按前x个天数进行分组 我可以很容易地按周分组 SELECT SUM( order_total_price ) AS total, WEEK(order_time,1) AS week_number FROM orders WHERE YEAR( order_time ) = 2014 GROUP BY WEEK( order_time, 1 ) 所以我想得到一周中每天的订单总数。 我需要每天运行7次这个查询 下面是一些示例数据。我从Mon Sun
SELECT SUM( order_total_price ) AS total, WEEK(order_time,1) AS week_number
FROM orders
WHERE YEAR( order_time ) = 2014
GROUP BY WEEK( order_time, 1 )
所以我想得到一周中每天的订单总数。
我需要每天运行7次这个查询
下面是一些示例数据。我从Mon Sun中选择了一系列总计
+-------------+-------------------+
| order_time | order_total_price |
+-------------+-------------------+
| 2014-03-03 | 20 |
| 2014-03-04 | 25 |
| 2014-03-05 | 30 |
| 2014-03-06 | 15 |
| 2014-03-07 | 20 |
| 2014-03-08 | 15 |
| 2014-03-09 | 30 |
| 2014-03-10 | 20 |
| 2014-03-11 | 15 |
| 2014-03-12 | 10 |
| 2014-03-13 | 25 |
| 2014-03-14 | 30 |
| 2014-03-15 | 25 |
| 2014-03-16 | 10 |
+-------------+-------------------+
这是我想要的结果
+----------+-------------+-------+
| end_day | week_number | total |
+----------+-------------+-------+
| 1 | 10 | 20 |
| 2 | 10 | 45 |
| 3 | 10 | 75 |
| 4 | 10 | 90 |
| 5 | 10 | 110 |
| 6 | 10 | 125 |
| 7 | 10 | 155 |
| 1 | 11 | 20 |
| 2 | 11 | 35 |
| 3 | 11 | 45 |
| 4 | 11 | 70 |
| 5 | 11 | 100 |
| 6 | 11 | 125 |
| 7 | 11 | 135 |
+----------+-------------+-------+
end_day(1=Mon-7=Sun)
将是计算周总数的当天。请注意总计是一周中该天的总计。SELECT
SELECT
sum(order_total_price) AS total,
WEEK(order_time,1) AS week_number, date_format(order_time,'%w') as day_of_week
FROM orders
WHERE YEAR(order_time) = 2014
AND date_format(order_time,'%w') >= 1
AND date_format(order_time,'%w') <= 2
-- date_format(date,format)
-- %w: Day of the week (0=Sunday, 6=Saturday)
GROUP BY WEEK(order_time,1), date_format(order_time, '%w')
总计(订单总价),
周(订单时间,1)作为周编号,日期格式(订单时间,'%w')作为周中的日期
从命令
其中年份(订单时间)=2014年
和日期格式(订单时间,'%w')>=1
和日期格式(订单时间,'%w')感谢您的努力!也许如果我给你一个我想解释的例子。不确定你在寻找什么,“但只有在前x个天数”可以用where子句完成。这是不是:“一周中每天的订单总数”要求将多周内每周第1天的所有订单相加?也许可以加上一个你预期产出的例子。我想我可能没有正确地解释我自己。我想按周对数据进行分组,但仅按x天数对周进行分组。所以我想按周一到周二,然后周一到周三,然后周一到周四等来分组,例如,一周的开始是周一,周末是周四。这就是为什么我需要运行查询7次。希望这有帮助。检查我的最新答案。然后查看date_format(),%w是一周中的一天,0是星期天。如果这就是你要找的,太好了。但是,下一次,请包括样本数据和预期结果。回答起来容易多了。我添加了一些样本数据和结果。我想我可能没有正确地解释自己。我想按周对数据进行分组,但仅按x天数对周进行分组。所以我想按周一到周二,然后周一到周三,然后周一到周四等来分组,例如,一周的开始是周一,周末是周四。这就是为什么我需要运行查询7次。希望这有帮助。