sql-server - 选择重复记录
问题描述
我只想检索重复记录而不是唯一记录。假设我有如下组成的数据
Ids Names
1 A
2 B
1 A
我想要如下输出:
Sno Id Name
1 1 A
2 1 A
解决方案
尝试这个:
DECLARE @DataSource TABLE
(
[ID] INT
,[name] CHAR(1)
,[value] CHAR(2)
);
INSERT INTO @DataSource ([ID], [name], [value])
VALUES (1, 'A', 'x1')
,(2, 'B', 'x2')
,(1, 'A', 'x3');
WITH DataSource AS
(
SELECT *
,COUNT(*) OVER (PARTITION BY [ID], [name]) AS [Count]
FROM @DataSource
)
SELECT *
FROM Datasource
WHERE [Count] > 1;
分组部分PARTITION BY
在窗口函数部分完成。ID
因此,基本上,我们正在计算每个唯一name
对的记录。当然,您可以在此处添加更多列。
推荐阅读
- sql-server - SQL Server 中关键字“DEFAULT”附近的语法不正确
- ios - 在ios swift中根据“id”参数获取不同的值
- sql - 为什么 AES_ENCRYPT 在 SQL 服务器上不起作用
- aws-lambda - 使用 CF 模板创建 AWS::Pinpoint::PushTemplate
- qt - 在 RowLayout 中使用其他元素标记自动换行
- mongodb - 如何使用 Mongoose 更新嵌套数组?
- java - java类外的访问接口
- ios - 扩展导致 Swift 中的清除按钮出现问题
- javascript - React/Javascript 在实现字典时遇到问题
- macos - Docker-compose, pip install -r requirements.txt' 返回一个非零代码:1