एसक्यूएल क्वेरी, गिनती और समूह द्वारा

अगर मेरे पास इस तरह का डेटा है:

+---+----+
|Key|Name|
+---+----+
|1  |Dan |
+---+----+
|2  |Tom |
+---+----+
|3  |Jon |
+---+----+
|4  |Tom |
+---+----+
|5  |Sam |
+---+----+
|6  |Dan |
+---+----+

रिकॉर्ड्स को वापस लाने के लिए एसक्यूएल क्वेरी क्या है जहां नाम दो या दो बार दोहराया जाता है?

तो परिणाम मैं चाहता हूँ

 +---+
 |Tom|
 +---+
 |Dan|
 +---+
0
जोड़ा संपादित
विचारों: 1

3 उत्तर

आसान नहीं हो सका ...

Select
Name,
Count(Name) As Count
From
Table
Group By
Name
Having
Count(Name) > 1
Order By
Count(Name) Desc

डुप्लीकेट हटाने के लिए इसे बढ़ाया जा सकता है:

Delete
From
Table
Where
Key In (
    Select
    Max(Key)
    From
    Table
    Group By
    Name
    Having
Count(Name) > 1)
0
जोड़ा
हटाने के लिए, आपको केवल न्यूनतम (कुंजी) छोड़नी चाहिए और अन्य प्रविष्टियों को हटा देना चाहिए। प्रश्न को संशोधित किया जाना चाहिए "... जहां कुंजी नहीं है (न्यूनतम (कुंजी) चुनें ...."
जोड़ा लेखक aartist, स्रोत
select name from table group by name having count(name) > 1
0
जोड़ा

यह तालिका को अपने साथ जोड़कर भी पूरा किया जा सकता है,

SELECT DISTINCT t1.name
FROM    tbl t1
        INNER JOIN tbl t2
        ON      t1.name = t2.name
WHERE   t1.key         != t2.key;
0
जोड़ा