问题描述
如果您的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表:
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
关于如何做的任何想法?