小编Mie*_*urg的帖子

在 ROW_NUMBER() 中包含大于 1 的行(包括第一个值)

我需要找到具有相同姓名和出生日期的用户。我还必须包含每个人的客户端 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. 本质上,我需要选择所有具有重复值的列,但客户端代码将是唯一的。

sql t-sql sql-server row-number window-functions

1
推荐指数
1
解决办法
5352
查看次数

标签 统计

row-number ×1

sql ×1

sql-server ×1

t-sql ×1

window-functions ×1