2011-09-27 14 views
5

का उपयोग करके डुप्लिकेट खोजें निम्न SQL अंतिम समय में असमानता होने पर अद्वितीय फ़ोन की पहचान करने में काम करता है। लेकिन अगर डुप्लिकेट फोन के पास सटीक समान है तो यह अंतिम काम नहीं करता है।रैंक ओवर विभाजन

किसी भी विचार की सराहना की जाएगी।

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] 

उत्तर

13

बदलें ROW_NUMBER के लिए RANK

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] 
+0

धन्यवाद! मुझे एक ही समस्या के साथ मदद की, केवल अधिक जटिल। मुझे भाग में अधिक कॉलम चाहिए – thirdy

संबंधित मुद्दे