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

如何在 SQL Server 中选择连续的重复项

如何在 SQL Server 中选择连续的重复项

这是一个间隙和岛屿风格的问题,但row_numbers()我们在最里面的子查询中使用id和代替了两个row_number()。其次是count() over()获取计数 per grp,最后返回带有 a 的那些cnt > 1。

select id, companyname 
from (
  select 
      id
    , companyName
    , grp
    , cnt = count(*) over (partition by companyname, grp)
  from (
    select *
      , grp = id - row_number() over (partition by companyname order by id)
    from
      companies
    ) islands
  ) d
where cnt  > 1
order by id

reextester 演示:http ://rextester.com/ACP73683

返回:

+----+-------------+
| id | companyname |
+----+-------------+
|  3 | pigs ltd    |
|  4 | pigs ltd    |
|  5 | cats ltd    |
|  6 | cats ltd    |
+----+-------------+
SQLServer 2022/1/1 18:52:39 有305人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

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

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

请先登录

推荐问题


联系我
置顶