简体   繁体   English

使用Rank over Partition查找重复项

[英]Find Duplicates using Rank Over Partition

The following SQL works in identifying unique phones when there is a disparity in LastDate. 以下SQL用于在LastDate中存在差异时识别唯一的电话。 But if duplicate phones have the exact same LastDate it does not work. 但是,如果重复的手机具有完全相同的LastDate,则它不起作用。

Any ideas will be appreciate it. 任何想法都会欣赏它。

SELECT * FROM
 (
  SELECT  ID, Phone, [LastDate]
  ,RANK() OVER (PARTITION BY Phone ORDER BY [LastDate]) AS 'RANK',                          
            COUNT(Phone) OVER (PARTITION BY  Phone) AS 'MAXCOUNT'
              FROM MyTable          
              WHERE Groupid = 5
              ) a
              WHERE [RANK] = [MAXCOUNT] 

Change the RANK for ROW_NUMBER . 更改ROW_NUMBERRANK

SELECT * 
FROM  (   SELECT    ID, Phone, [LastDate],
                    ROW_NUMBER() OVER (PARTITION BY Phone ORDER BY [LastDate]) AS 'RANK',
                    COUNT(Phone) OVER (PARTITION BY  Phone) AS 'MAXCOUNT'
          FROM MyTable
          WHERE Groupid = 5) a 
WHERE [RANK] = [MAXCOUNT]

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM