如何在 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 中选择连续重复项 的相关文章

  • MySQL 中的排名函数

    我需要找出客户的等级 这里我根据我的要求添加相应的 ANSI 标准 SQL 查询 请帮我将其转换为 MySQL SELECT RANK OVER PARTITION BY Gender ORDER BY Age AS Partition b
  • 数据库设计 - 何时拆分表?

    有时创建一个单独的表会产生更多工作 我是否应该将其拆分 例如 在我的项目中 我有一张客户表 每个客户对每种产品都有自己的特殊价格 只有5种产品 未来不会计划更多产品 每个客户也有一周中公司向他交付产品的独特日子 当日期和产品价格是客户表中的
  • SQL Server 中“WITH SCHEMABINDING”的缺点?

    我有一个数据库 其中有数百个名称尴尬的表 CG001T GH066L 等 并且我对每个表都有其 友好 名称的视图 例如 视图 CUSTOMERS 是 SELECT FROM GG120T 我想将 WITH SCHEMABINDING 添加到
  • 检查SQL Server数据库表中是否存在表或列

    在 SQL Server 数据库中创建列或表之前 我想检查所需的表和 或列是否存在 我已经四处搜寻 到目前为止发现了两种方法 我不想使用存储过程 通过使用SqlCommand ExecuteScalar 方法并捕获异常来确定表 列是否存在
  • mysql查询获取根父级

    我的表中有以下数据categories id parent id title 1 0 A 2 1 B 3 2 C 4 3 D 5 4 E 现在我想获取类别 id 4 的根类别标题 parent id 0 即标题 A 的类别 id 1 如何在
  • CROSS APPLY WHERE 子句在交叉应用之前或结果之后起作用吗

    我正在做一种我们在一个内部应用程序中需要的自定义模糊匹配算法 我正在努力加快速度 当我对模糊函数进行交叉应用以查找建议的匹配项时 我不想搜索不必要的数据 这是函数 select top 5 Manufacturer Manufacturer
  • 用数组“插入”

    我想知道是否有一种方法可以在值列表上使用 插入 我正在尝试这样做 insert into tblMyTable Col1 Col2 Col3 values value1 value2 value3 所以 我想说的是 value2 将是一个字
  • 如何在 MySQL 中进行数据透视表

    我有一个关于如何在 MySQL 中旋转表的问题 我有一个数据集 像这样的列 ID Name job title 1 Sam Fireman 2 Tomas Driver 3 Peter Fireman 4 Lisa Analyst 5 Ma
  • 函数 SQL 中的函数

    我可以在表值函数中调用标量函数吗 Thanks 是的 只要表值函数完成后返回一个表即可 用户自定义函数可以嵌套 也就是说 一个用户定义的函数可以 呼叫另一个 嵌套级别为 被调用函数时递增 开始执行 并在以下时间递减 被调用函数完成 执行 用
  • 在 SQL Server 中选择日期(星期一)

    我有一个领域dd mm yy hh mm ss tt 我只想选择当天的名称 I tried datepart and day 两者都给了我 1 到 31 我想要的是星期一 星期二等等 如何实现这一目标 SELECT DATEPART WEE
  • Azure:用户登录失败

    我做了什么 我在 Azure 中添加了资源组 添加了带有先前资源组的 Web 服务 添加了带有先前资源组的 SQL Server 数据库 从此数据库检索生成的连接字符串并在此处提供用户名和密码 将此连接字符串添加到Web服务中的应用程序设置
  • 每周汇总最近加入的记录

    我有一个updatesPostgres 中的表是 9 4 5 如下所示 goal id created at status 1 2016 01 01 green 1 2016 01 02 red 2 2016 01 02 amber And
  • 错误:使用 UNION、INTERSECT 或 EXCEPT 运算符组合的所有查询在其目标列表中必须具有相同数量的表达式

    我正在尝试创建一个存储过程 该过程将通过电子邮件发送一个 HTML 表 该表使用包含 Unions 的查询 但我不断得到 使用 UNION INTERSECT 或 EXCEPT 运算符组合的所有查询在其目标列表中必须具有相同数量的表达式 我
  • WHERE IN 条件不接受字符串值

    我正在动态构造一个带有名称的字符串用户数据在 PL Sql 过程中通过附加用户名 单引号 和逗号 的形式 abc123 xyz456 pqr789 但是当我将此字符串传递给 SELECT 语句的 WHERE IN 条件时 SELECT FR
  • 变更数据捕获性能损失是否仅限于启用 CDC 的表?

    我读到启用更改数据捕获显然会对数据库性能产生影响 这种性能损失是否仅影响启用了 CDC 的表 还是会影响数据库中的所有操作 在我的情况下 我使用 SSIS 并且有大量数据移入和移出临时数据库 我的系统中还有一些用于转换的查找表 我希望使用
  • sql查询仅删除一个重复行

    我有一个表 其中有一些重复的行 我只想删除一个重复的行 例如 我有 9 个重复行 因此应仅删除一行并应显示剩余 8 行 example 日期调用调用持续时间时间戳 2012 06 19 10 22 45 000 165 218 155 1
  • 更改使用文本文件的 SSIS 日志提供程序创建的文件的文件编码

    我是 SSIS 新手 我已经设计了一个包并为文本文件配置了 SSIS 日志提供程序 这工作正常并且日志文件已成功生成 我们有一个监控团队 他们使用这个日志文件进行监控 他们无法读取日志文件 因为文件编码是 Unicode 格式 他们期望使用
  • SQL Server Express(或任何版本)可以在 RPi 上运行吗?

    我注意到完整版的 Windows 10 可以在 RPI 3 上运行 我想知道 SQL Server Express 或任何其他版本 是否可用于 ARM 版本的 Windows 我在任何地方都看不到它 所以我怀疑答案是否定的 但想检查一下我是
  • 使用@@Identity

    我想知道如何从另一个数据库的表中获取最近生成的自动编号值 目前我正在这样做 Do Until rsA EOF Inserts new row here works Set rs New ADODB Recordset rs Open SEL
  • SQL 几何 VS 小数(8,6) 纬度、经度性能

    我正在研究选择与给定坐标一定距离内的最近点的性能 选项是以太使用两个decimal 8 6 纬度 长列或单列geography列并与之合作 我只感兴趣哪个更快 TL DR地理大约快 10 倍 好的 我已经设置了测试 几张桌子 一张id la

随机推荐

  • 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