您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在SQL Server中按顺序分组

在SQL Server中按顺序分组

根据我在您的问题中添加标签,这是一个空白和孤岛的问题。

效果最好的解决方案可能是

WITH T
     AS (SELECT *,
                ID - ROW_NUMBER() OVER (PARTITION BY [STATUS] ORDER BY [ID]) AS Grp
         FROM   YourTable)
SELECT [STATUS],
       SUM([VALUE]) AS [SUM(VALUE)]
FROM   T
GROUP  BY [STATUS],
          Grp
ORDER  BY MIN(ID)

如果ID值不能保证如所述连续,那么您将需要使用

ROW_NUMBER() OVER (ORDER BY [ID]) - 
       ROW_NUMBER() OVER (PARTITION BY [STATUS] ORDER BY [ID]) AS Grp

而是在CTE定义中。

SQL小提琴

SQLServer 2022/1/1 18:35:32 有575人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶