ID value type
1 1 A
2 2 A
3 3 B
4 4 A
5 5 B
6 6 C
7 7 B
8 8 C
9 9 A
10 10 A
11 121 A
我想实现按分类,每隔3条记录求一次总和,显示结果应为如下所示:
1+2+4=7 A
9+10+11=30 A
3+5+7=15
但是 不够3个的不总和,例如C。
1 1 A
2 2 A
3 3 B
4 4 A
5 5 B
6 6 C
7 7 B
8 8 C
9 9 A
10 10 A
11 121 A
我想实现按分类,每隔3条记录求一次总和,显示结果应为如下所示:
1+2+4=7 A
9+10+11=30 A
3+5+7=15
但是 不够3个的不总和,例如C。
SQL语句如下:
with cte as
(
select *, growid = row_number() over (partition by type order by id)
from testvalue
)
select (growid-1)/3+1 as grow,sum(value) as total,type
from cte
group by (growid-1)/3,type
having COUNT(1)=3