我需要找到具有相同姓名和出生日期的用户。我还必须包含每个人的客户端 ID,因此我无法COUNT(*)与 group by 一起使用。我ROW_NUMBER()在 CTE 中使用按这三列进行分区。但我需要包含所有多个值,包括where rownumber = 1.
这就是我现在所拥有的:
;WITH
Rownumbers AS
(
SELECT
[Client code]
,Name
,Surname
,[Date of Birth]
,ROW_NUMBER() OVER
(PARTITION BY
name
,surname
,[DATE of birth]
ORDER BY
[client code]
)AS [Row Number]
FROM
kyc_details
)
SELECT
,[client code]
,Name
,Surname
,[DATE of birth]
,[Row Number]
FROM
[Rownumbers]
WHERE
[Row Number] > 1
Run Code Online (Sandbox Code Playgroud)
这里的问题是,我需要包括rownumber = 1. 本质上,我需要选择所有具有重复值的列,但客户端代码将是唯一的。