0

我希望GROUP每个月的每个星期天,例如 2013 年 6 月是这样的:

  • 第 1 周:2013 年 6 月 9 日(即 6 月 1 日至 6 月 9 日)
  • 第 2 周:2013 年 6 月 16 日
  • 第 3 周:2013 年 6 月 23 日
  • 第 4 周:2013 年 6 月 30 日

我试过这样的 SQL 查询:

SELECT DATE_FORMAT(statusdate,  '%d-%m-%Y' ) as Week, SUM(sales_points) 
FROM `sales`
   WHERE YEAR(statusdate) = 2013 AND MONTH(statusdate) = 6
GROUP BY DATE_FORMAT( statusdate,  '%Y%U') 

每周 - 它计算总分。

球场上的那天Week结果是错误的,它与上面的 May 示例不匹配。

预期的结果是这样的:

----------------------
Week        |  Points
----------------------
09-03-2013  |  434
16-03-2013  |  356
23-03-2013  |  354
30-03-2013  |  642
4

2 回答 2

0

这应该可以工作......从字符串转换可能有点混乱,但我以前习惯于汇总每周数据

SELECT STR_TO_DATE(concat(yearweek(statusdate,1),'Sunday'), '%X%V%W') 
               as week_ending,  
       sum(sales_points) 
from `sales` 
group by STR_TO_DATE(concat(yearweek(statusdate,1),'Sunday'), '%X%V%W')
于 2013-06-28T15:13:13.733 回答
0

只是猜测...

SELECT MIN(dt) FROM calendar WHERE DATE_FORMAT(dt,'%Y-%m') = '2013-06' GROUP BY WEEK(dt);
于 2013-06-28T14:43:52.460 回答