2012-03-05 16 views
11

मैं इस कोड लिखा है डुप्लीकेट ढूंढना लौटें और यह ठीक काम करता है:सभी डुप्लीकेट पंक्तियों

SELECT * 
FROM StyleTable 
GROUP BY Color 
HAVING count(*) > 1 

समस्या है, यह सिर्फ डुप्लीकेट पंक्तियों में से एक लौटा रहा है। क्या सभी डुप्लिकेट पंक्तियों को वापस करना संभव है? मुझे लगता है कि यह 'ग्रुप बाय' के साथ कुछ करने के लिए हो सकता है लेकिन मुझे यकीन नहीं है कि इसे कैसे बदला जाए। मैं मूल्यों को हटाना नहीं चाहता, बस उन्हें वापस कर दें।

+0

मुझे लगता है कि यह SQL रन नहीं होगा, जब तक कि स्टाइलटेबल तालिका में रंग एकमात्र कॉलम न हो। – theglauber

उत्तर

15

मुझे लगता है कि डुप्लिकेट प्राप्त करने के लिए आपको फिर से तालिका में शामिल होना होगा। कुछ ऐसा:

SELECT * 
FROM StyleTable 
WHERE Color IN (
    SELECT Color 
    FROM StyleTable 
    GROUP BY Color 
    HAVING count(*) > 1 
)  
+0

धन्यवाद, यह काम किया। मैं कुछ मिनटों में स्वीकार करूंगा जब मैं कर सकता हूं। – XSL

5
SELECT s.* 
    FROM StyleTable s 
     INNER JOIN (SELECT Color 
         FROM StyleTable 
         GROUP BY Color 
         HAVING COUNT(*) > 1) q 
      ON s.Color = q.Color 
संबंधित मुद्दे