我有一个这样的SQL表:
id pNum ----- -------- 100 12 100 13 100 15 100 16 100 17 200 18 200 19 300 20 300 21 300 25
我想按id和pNum序列分组,并计算行数。这样的结果。
id res ----- -------- 100 2 100 3 200 2 300 2 300 1
关于如何做的任何想法?
如果您的DBMS支持窗口功能(例如SQL Server 2005+)
SELECT id, count(*) AS res FROM (SELECT *, [pNum] - ROW_NUMBER() OVER (PARTITION BY [id] ORDER BY [pNum]) AS Grp FROM YourTable) T GROUP BY id, Grp
SQL小提琴