我有一个表:
用户ID 邮件编号 金额
1 1234 100
1 1235 150
1 1236 120
1 2110 100
1 2111 100
1 2112 100
2 2113 100
2 2114 101
2 2115 120
2 2116 130
2 2118 140
由上面现在想得到这样两条记录
用户编号 起号 止号 记录数 金额
1 1234 1236 3 370
1 2110 2112 3 300
2 2113 2116 4 451
2 2118 2118 1 140
总的来说:按用户编号分组,其中如果邮件编号有断码,则分两条记录统计金额未累加,止号-起号
用户ID 邮件编号 金额
1 1234 100
1 1235 150
1 1236 120
1 2110 100
1 2111 100
1 2112 100
2 2113 100
2 2114 101
2 2115 120
2 2116 130
2 2118 140
由上面现在想得到这样两条记录
用户编号 起号 止号 记录数 金额
1 1234 1236 3 370
1 2110 2112 3 300
2 2113 2116 4 451
2 2118 2118 1 140
总的来说:按用户编号分组,其中如果邮件编号有断码,则分两条记录统计金额未累加,止号-起号
from (
select id,mail,money,row_number()over(partition by id order by mail) rn
from tb )
group by id,mail-rn
;