集团每个星期天一个月?

时间:2013-06-28 14:39:33

标签: mysql database group-by

我想{2013年6月的每个星期日例如GROUP将是这样的:

  • 2013年6月1日:第6周(意味着6月1日至6月9日)
  • 第2周:2013年6月16日
  • 第3周:2013年6月23日
  • 2013年6月4日星期四。

我尝试过这样的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字段的日期结果是错误的,它与5月份的例子不匹配。

预期的结果是这样的:

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

2 个答案:

答案 0 :(得分:0)

只是一个猜测......

SELECT MIN(dt) FROM calendar WHERE DATE_FORMAT(dt,'%Y-%m') = '2013-06' GROUP BY WEEK(dt);

答案 1 :(得分: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')