2011-06-06 25 views
14

मुझे डेटाबेस में प्रत्येक नंबर के सभी डुप्लीकेटों की गिनती प्राप्त करने के लिए एमएस जेट 4.0 (एमएसएसक्ल?) के लिए एक SQL क्वेरी चाहिए।प्रत्येक मान के सभी डुप्लीकेट

क्षेत्र हैं: id (autonum), number (पाठ)

मैं नंबर की एक बहुत कुछ के साथ एक डेटाबेस है।

प्रत्येक नंबर को सभी डुप्लिकेट की गिनती के साथ, डुप्लिकेट के बिना संख्यात्मक क्रम में वापस किया जाना चाहिए।

संख्या क्षेत्रों युक्त 1, 2, 2, 3, 1, 4, 2 लौटना चाहिए:

1, 2 
2, 3 
3, 1 
4, 1 

उत्तर

27
SELECT col, 
     COUNT(dupe_col) AS dupe_cnt 
FROM  TABLE 
GROUP BY col 
HAVING COUNT(dupe_col) > 1 
ORDER BY COUNT(dupe_col) DESC 
+1

याद 'COUNT होने (dupe_col)> 1' –

+1

मत सोचो तुम' HAVING' की जरूरत के रूप में ओ पी एक साथ 3 और 4, दोनों के स्तंभ मान शामिल के लिए +1 1 की गणना, उनके अपेक्षित परिणामों में। –

+1

इसके अलावा, ओपी के पास कॉल द्वारा क्रमशः आदेश नहीं है, जब तक कि 2 अब 3 से अधिक न हो) = –

4

यह काफी सरल है।

डेटा मान लिया जाये कि एक कॉलम एक मेज टी कहा जाता है में एक कहा जाता है में जमा हो जाती है, तो आप उपयोग कर सकते हैं

select A, count(A) from T group by A 
5

आप COUNT ऑपरेटर चाहते हैं।

SELECT NUMBER, COUNT(*) 
FROM T_NAME 
GROUP BY NUMBER 
ORDER BY NUMBER ASC 
14
SELECT number, COUNT(*) 
    FROM YourTable 
    GROUP BY number 
    ORDER BY number 
+0

मुझे लगता है कि यह वास्तव में सबसे सही सही उत्तर था। –

+0

लॉल, हालांकि मैं गलत होगा, मैं अपने सिर में समय गलत कर रहा था। –

+0

@mootinator: नहीं, सबसे पुराना जवाब @ डंकन का था, फिर @ dpmattingly है। जो आप ईलीएस्ट कोर्रक्ट के रूप में गिनते हैं, वह आपके ऊपर है। –

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