मुझे "तालिका में प्रत्येक समूह के लिए शीर्ष एन पंक्तियों का चयन करना" के संबंध में एक बहुत ही आम समस्या का सामना करना पड़ रहा है।तालिका में प्रत्येक समूह के लिए शीर्ष एन पंक्तियों का चयन
id, name, hair_colour, score
कॉलम के साथ एक तालिका पर विचार करें।
मुझे एक परिणाम चाहिए कि प्रत्येक बाल रंग के लिए, मुझे शीर्ष 3 स्कोरर नाम प्राप्त करें।
इस मैं वास्तव में मिला क्या मैं Rick Osborne's blogpost "sql-getting-top-n-rows-for-a-grouped-query"
पर जरूरत समाधान की उम्मीद के रूप में जब मेरे स्कोर बराबर हैं काम नहीं करता है कि हल करने के लिए।
उपरोक्त उदाहरण में परिणाम का पालन करें।
id name hair score ranknum
---------------------------------
12 Kit Blonde 10 1
9 Becca Blonde 9 2
8 Katie Blonde 8 3
3 Sarah Brunette 10 1
4 Deborah Brunette 9 2 - ------- - - > if
1 Kim Brunette 8 3
पंक्ति 4 Deborah Brunette 9 2
पर विचार करें। यदि यह सारा के समान ही स्कोर (10) है, तो "श्यामला" प्रकार के बालों के लिए रैंकनम 2,2,3 होगा।
इसका समाधान क्या है?
आप आरडीबीएमएस का उपयोग कर रहे हैं? –
यदि आप नए SQL सर्वर का उपयोग नहीं कर रहे हैं तो http://stackoverflow.com/questions/3823939/ पर इसके लिए एक समाधान है। –