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

2024-01-02

我想从 SQL Server 表中选择重复的条目,但前提是 id 是连续的。

我一直在努力扭转这个答案 https://stackoverflow.com/a/3298645/1778169满足我的需要,但我无法让它工作。

上面的答案是针对Oracle的,但我看到SQL Server也有lead and lag功能。

另外,我认为上面的答案提出了一个*在重复项旁边,但我只想选择重复项。

select 
    id, companyName, 
    case 
       when companyName in (prev, next) 
          then '*' 
    end match, 
    prev, 
    next 
from 
    (select
         id,
         companyName,
         lag(companyName, 1) over (order by id) prev,
         lead(companyName, 1) over (order by id) next
     from
         companies)
order by
    id;

Example:

所以从这个数据集中:

id      companyName
-------------------    
1       dogs ltd
2       cats ltd
3       pigs ltd
4       pigs ltd
5       cats ltd
6       cats ltd
7       dogs ltd
8       pigs ltd

我想选择:

id      companyName
-------------------    
3       pigs ltd
4       pigs ltd
5       cats ltd
6       cats ltd

Update

我时不时地对我在 SO 上得到的答案的数量和质量感到惊讶。这是其中之一。我没有足够的专业水平来判断一个答案比另一个答案更好,所以我选择了 SqlZim,因为这是我看到的第一个有效答案。但很高兴看到不同的方法。尤其是就在一个小时前,我还在想“这可能吗?”。


你非常接近你想要的:

select id, companyName
from (select c.*,
             lag(companyName, 1) over (order by id) prev,
             lead(companyName, 1) over (order by id) next
      from companies c
     ) a
where CompanyName in (prev, next)
order by id;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 SQL Server 中选择连续重复项 的相关文章

随机推荐

  • Golang:致命错误:运行时执行期间出现意外信号

    当我执行二进制文件时 我随机收到以下错误 有时有效 fatal error unexpected signal during runtime execution signal SIGSEGV segmentation violation c
  • 表示二维数组中索引的更简单方法

    我是编程新手 我创建了一个简单的井字游戏游戏 它接受二维数组的行和列的输入 但是 我想让它更简单并使用值1 9而是代表棋盘上的每个方块 我处理这个问题的方法似乎相当漫长和复杂 抱歉格式错误 因为我想节省空间 if pos gt 0 pos
  • 将样式应用于保存到 HTML 文件的 Pandas 数据框

    我在 Jupyter IPython 笔记本中有一个 Pandas 数据框 Jupyter 内的数据框作为 HTML 表格的样式非常好 标题行采用粗体样式 字体美观 表格边框较细 然后我将数据框导出到 HTML 文件 按照说明here ht
  • axios:如何一个接一个地运行多个请求?

    我有一个非常大的 ID 数组 数千个 ID 我想循环遍历这个数组 并对每个值向 API 发出请求 如下所示 12 32 657 1 67 forEach id gt axios get myapi com user id then data
  • 使用 GitHub Actions 从私有 GitHub 存储库安装 npm 模块

    我正在尝试使用 GitHub Actions 运行 Node js 项目的构建 作为npm install 我需要直接从私有 GitHub 存储库 而不是从 GPR 安装 npm 模块 In the package json I have
  • Java 8 Stream 函数将字谜列表分组为列表映射

    Java 8 即将发布 在学习 Streams 时 我遇到了一个使用其中一种新方法对字谜进行分组的场景 我面临的问题是我找不到使用 map reduce 函数对 Strings 对象进行分组的方法 相反 我必须创建与记录类似的方法聚合运算
  • Xcode -- 让force_load 使用相对路径

    某些库在链接到 Xcode 项目时需要 all load 链接器标志 但是 如果库之间存在符号冲突 这会导致链接器错误 解决方案是使用 force load 它可以有效地让您在某些库上使用 all load 但不能在其他库上使用 然而 这反
  • 如何仅使用 CSS 制作圆形面包屑

    有谁见过可用的 css3 解决方案来实现上述内容吗 我想找到一种不需要图像的方法 也不重写其他人可能已经很好解决的问题 有人知道现有的解决方案吗 使用起来相当简单CSS3 s border radius财产 现场演示 http jsbin
  • 重命名数据库中的所有表

    我有一个数据库 其中所有表都以一组相同的字符为前缀 这样做是因为它们曾经位于一个为宠物项目设置的共享数据库中 其中包含数百个其他表 应用程序以及数据库现在已准备好脱离该阶段并准备独立运行 我想删除每个表的前缀 有没有比右键单击并单独重命名每
  • 更改 nginx 上的标头“Django 管理”文本

    我跟着这个问题 https stackoverflow com questions 4938491 django admin change header django administration text更改我的 django 管理面板标
  • 根据表格数据找到每个部门的第三个最高工资

    我需要找出3rd maximum salary对于一个员工 对于一个部门的每个部门table if no 3rd maximum salary存在然后显示2nd maximum salary if no 2nd maximum salary
  • 如何从电子邮件地址获取 SMTP 服务器

    我想通过特殊的电子邮件帐户自动发送邮件 但现在 我只知道电子邮件地址 电子邮件受保护 cdn cgi l email protection和密码 那么你知道如何获取 SMTP 服务器吗 下面是我的 C 代码 SmtpClient clien
  • Perl:何时释放不需要的标量内存而不超出范围?

    我有一个应用程序 可以将大量文本数据读取为标量 有时甚至是 GB 大小 我用substr在该标量上将大部分数据读取到另一个标量中 并将提取的数据替换为空字符串 因为第一个标量中不再需要它 我最近发现 Perl 没有释放第一个标量的内存 但它
  • 单击时,循环遍历每个对象键

    我还在学习 JS 有些东西比其他人更难理解 就像这样 我试图通过允许用户单击自定义按钮来更改谷歌地图的主题 我正在使用 if else 效果很好 但我想添加更多主题并使用循环 用户每次单击时 都会选择 object key 0 then c
  • 从 C++ 调用 DLL 中的函数

    我在 VS 2008 中有一个解决方案 其中有 2 个项目 一个是用 C 编写的 DLL 另一个是从空白项目创建的简单 C 控制台应用程序 我想知道如何从应用程序调用 DLL 中的函数 假设我从一个空白的 C 项目开始 并且我想调用一个名为
  • 打印所有定义的变量和值

    这只是为我提供了已定义变量的数组 但没有打印出任何变量 我怎样才能打印值 另外我可以使用什么函数以这种格式输出所有定义的变量 变量名称 变量类型 int array string bool 在线定义变量 脚本中定义的变量 使用次数可变 变量
  • 了解并发.futures.Executor.map()

    我正在尝试使用进程并行化一些Python代码concurrent futures https docs python org 3 library concurrent futures html 看起来我可以通过以下方式多次并行执行一个函数提
  • Windows 服务启动/停止另一个服务

    我用 C 编写的服务有一个小问题 该服务本身运行正常并且在 SYSTEM 帐户下运行 在一个执行点期间 我必须启动或停止另一项服务 然而 这是行不通的 致电给OpenService 返回错误代码 5 即 访问被拒绝 提供更多细节 我必须启动
  • 列表到字典

    我有一个List
  • 如何在 SQL Server 中选择连续重复项

    我想从 SQL Server 表中选择重复的条目 但前提是 id 是连续的 我一直在努力扭转这个答案 https stackoverflow com a 3298645 1778169满足我的需要 但我无法让它工作 上面的答案是针对Orac