微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SQL计数按数字序列分组

如何解决SQL计数按数字序列分组

如果您的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小提琴

解决方法

我有一个这样的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

关于如何做的任何想法?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。