我希望按周分组我的数据,但是星期几从星期一开始。 我如何将我的星期从星期一到星期日分组?
这是我的问题:
SELECT YEARWEEK(dateStats) k,dateStats udate, COUNT(f_shop) sales
FROM sal_import WHERE dateStats BETWEEN "2011-08-15" AND "2011-08-21" GROUP BY YEARWEEK(dateStats)
Between之间的日期从星期一到星期日,我只需要一行结果。
非常感谢
答案 0 :(得分:23)
YEARWEEK(date[,mode])
函数的第二个参数是mode
- 就像WEEK(date[,mode])
函数一样。
您可以指定开始日期 - 默认为0 (Sunday)
。
只需将其设为1 (Monday)
:
YEARWEEK(dateStats, 1)
答案 1 :(得分:0)
答案 2 :(得分:0)
我建议为这类工作使用日期维度。这允许您为日期指定不同的属性,例如“工作日”,“周末”,“周数”,“财务季”等。
有关详细信息,请参阅我对以下问题的回答;
Select all months within given date span, including the ones with 0 values
然后,您可以使用两个不同的YEARWEEK类型值创建列,将数据连接到维度表,并为其中任何一个生成结果,而无需更改设置等。
希望这对你有所帮助!