基于序列对结果进行分组的SQL查询
发布时间:2020-12-12 16:28:00 所属栏目:MsSql教程 来源:网络整理
导读:我有这样的表: ID Seq Amt1 1 5001 2 5001 3 5001 5 5002 10 6002 11 6003 1 7003 3 700 我想将连续序列号分组成一行,如下所示: ID Start End TotalAmt1 1 3 15001 5 5 5002 10 11 12003 1 1 7003 3 3 700 请帮助实现这一结果. 解决方法 WITH numbered AS (
我有这样的表:
ID Seq Amt 1 1 500 1 2 500 1 3 500 1 5 500 2 10 600 2 11 600 3 1 700 3 3 700 我想将连续序列号分组成一行,如下所示: ID Start End TotalAmt 1 1 3 1500 1 5 5 500 2 10 11 1200 3 1 1 700 3 3 3 700 请帮助实现这一结果. 解决方法WITH numbered AS ( SELECT ID,Seq,Amt,SeqGroup = ROW_NUMBER() OVER (PARTITION BY ID ORDER BY Seq) - Seq FROM atable ) SELECT ID,Start = MIN(Seq),[End] = MAX(Seq),TotalAmt = SUM(Amt) FROM numbered GROUP BY ID,SeqGroup ORDER BY ID,Start ; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |