में किसी अन्य कॉलम से किसी मान के बराबर या उसके बराबर मान के साथ पंक्तियों की संख्या की गणना करना मेरे पास दो कॉलम वाली एक तालिका है: कुछ आईडी और जोड़े के लिए "अंक" की संख्या। मुझे एक परिणाम चाहिए जो x
के प्रत्येक मान के लिए x
अंक या उससे अधिक जोड़ों की संख्या सूचीबद्ध करता है। तो मेरी इनपुट की तरह दिखता है:SQL
| couple_id | num_marks | |-----------+-----------| | 9 | 7 | | 6 | 6 | | 8 | 6 | | 2 | 5 | | 3 | 4 | | 5 | 4 | | 1 | 3 | | 4 | 3 | | 10 | 2 | | 7 | 1 |
और मैं परिणाम प्राप्त करना चाहते हैं:
| num_marks | num_couples | |-----------+-------------| | 7 | 1 | | 6 | 3 | | 5 | 4 | | 4 | 6 | | 3 | 8 | | 2 | 9 | | 1 | 10 |
अर्थात 7 या उससे अधिक अंक वाले 3 जोड़े, 6 या अधिक अंकों वाले 3 जोड़े, 4 5 या अधिक अंक वाले जोड़ों आदि। मैं पर एक प्रश्न के साथ आने में सक्षम हूं के साथ जोड़े की संख्या वापसn
अंक:
SELECT num_marks,
count(couple_id) AS num_couples
FROM table_name
GROUP BY num_marks
ORDER BY num_marks DESC;
कौन सा पैदावार:
| num_marks | num_couples | |-----------+-------------| | 7 | 1 | | 6 | 2 | | 5 | 1 | | 4 | 2 | | 3 | 2 | | 2 | 1 | | 1 | 1 |
Ie 7 अंकों के साथ 1 जोड़े, 6 अंक वाले 2 जोड़े, 1 के साथ 1, इत्यादि। से ऊपर प्रत्येक पंक्ति के मूल्य को प्रभावी ढंग से करने के लिए प्रभावी तरीका है? मैं इसे एप्लिकेशन स्तर पर कर सकता हूं, लेकिन ऐसा लगता है कि जो वास्तव में डेटाबेस में संबंधित है।
यह शानदार शानदार है! मुझे नहीं पता था कि आप 'चयन' कॉलम के रूप में हो सकते हैं। क्या वह मानक एसक्यूएल है जो उदा। SQLite और Postgres? साथ ही, मेरा 'table_name' वास्तव में एक तालिका नहीं है, यह अपने आप पर एक बड़ा' चुनौती 'है; क्या वह चीजें तोड़ देगा? – haxney
@ हक्सनी - मैंने संपादित किया है - हां, आप table_name को किसी अन्य क्वेरी से बदल सकते हैं, इसे बाहरी चयन पर इसका उपयोग करने के लिए इसे उपनाम करने की आवश्यकता होगी। – StuartLC