Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

एक से अधिक अद्वितीय मान को असाइन किए गए डुप्लिकेट मान खोजें

WITH CTE AS (SELECT DBVersionKey, Desc19, ROW_NUMBER()OVER(PARTITION BY Desc19
ORDER BY Desc19) RN
FROM Table_A)

SELECT * FROM CTE WHERE RN > 1

मैं पंक्ति संख्या विभाजन के साथ सामान्य तालिका अभिव्यक्तियों का उपयोग करने का सुझाव देता हूं। यह Desc19 के प्रत्येक उदाहरण की गणना (RN) बनाता है।

मैं अभी क्वेरी का परीक्षण नहीं कर सकता, लेकिन मुझे अपने परिणामों पर अपडेट रखें और मैं वहां से समायोजित कर सकता हूं।

संपादित करें

यदि DBVersionKey एक अद्वितीय मान नहीं है, तो मैं कोशिश करूँगा:

SELECT DISTINCT DBVersionKey, Desc19, COUNT(*)
FROM Table_A
Group by DBVersionKey, Desc19

मुझे बताएं कि क्या यह बेहतर काम करता है।

2 संपादित करें

एक बार फिर, मैं इसका परीक्षण नहीं कर सकता। पहली सुझाई गई क्वेरी में जोड़ना:

WITH CTE AS (SELECT DBVersionKey, Desc19, ROW_NUMBER()OVER(PARTITION BY Desc19 ORDER BY Desc19) RN 
FROM (SELECT DISTINCT DBVersionKey, Desc19 FROM Table_A GROUP BY DBVersionKey, Desc19)

SELECT * FROM CTE WHERE RN > 1


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. क्या MySQL कार्यक्षेत्र फ़ाइलों को सादे XML के रूप में सहेजना संभव है?

  2. लारवेल यूनिक्स सॉकेट के साथ एमएएमपी

  3. क्या mysql क्वेरी में find_in_set में अल्पविराम सीमांकित स्ट्रिंग की कोई सीमा है?

  4. MySQL त्रुटि DEFAULT क्लॉज में CURRENT_TIMESTAMP के साथ केवल एक TIMESTAMP कॉलम हो सकता है, भले ही मैं कुछ भी गलत नहीं कर रहा हूं

  5. Mysql चेतावनी को कैसे हल करें:InnoDB:page_cleaner:1000ms इच्छित लूप ने XXX ms लिया। सेटिंग्स इष्टतम नहीं हो सकती हैं?