我有一个与此类似的表:
ID WEEK
1 1
2 1
3 1
4 2
5 2
6 3
7 3
8 3
这是我当前的查询:
SELECT COUNT(*), `week` FROM data GROUP BY `week`
我需要的是每两周将行分组为同一个COUNT.
所以代替这个:
COUNT(*) WEEK
3 1
2 2
3 3
3 4
我会得到:
COUNT(*) WEEK
5 1
5 2
6 3
3 4
每周还有下周添加COUNT.
修改的问题:
我应该明确我真正需要的东西.
而不是将第1周和第3周分组,我需要的是每2周分组一次.
因此,按第1和第2周,第2和第3周,第3和第4周,第4和第5周等分组
如果可能,将自动进行,但是可以在查询之外针对周分组生成sql.
谢谢.
解决方法:
我想我有给你…
首先,从数据中获得不同的可用周…
然后,加入数据,但要特别在第1周或第1周
我将此应用到您现有的SQLFiddle,它似乎可以工作.
select
JustWeeks.`week`,
Count(*) as TwoWeekSum
from
( select distinct
`week`
from
data ) JustWeeks
JOIN data
ON JustWeeks.`week` = data.`week`
OR JustWeeks.`week` +1 = data.`week`
group by
JustWeeks.`week`
标签:mysql,group-by
来源: https://codeday.me/bug/20191123/2066946.html