2009-01-10 9 views
6

MYSQL में पंक्ति डेटा के अतिरिक्त पंक्तियों के रैंक को पाने का सबसे अच्छा तरीका क्या है?MYSQL में रैंक उत्पन्न करने का सबसे अच्छा तरीका क्या है?

उदाहरण के लिए, कहें कि मेरे पास छात्रों की एक सूची है और मैं जीपीए पर रैंक करना चाहता हूं। मुझे पता है कि मैं जीपीए द्वारा ऑर्डर कर सकता हूं, लेकिन MYSQL को रैडटा में रैंक वापस करने का सबसे तेज़ तरीका क्या है?

+0

http://dba.stackexchange.com/questions/13703/get-the-rank-of-a-user-in-a-score-table –

+0

[MySQL के संभावित डुप्लिकेट - पर पंक्ति नंबर प्राप्त करें चयन करें] (http://stackoverflow.com/questions/2520357/mysql-get-row-number-on- चयन करें) –

उत्तर

5

इस रूप में rownum

SELECT @rownum := @rownum + 1 rownum, 
     t.* 
    FROM (SELECT @rownum:=0) r, 
     (SELECT * FROM students ORDER BY gpa DESC) t; 
+0

आपका विलियम के उत्तर से कहीं अधिक जटिल दिखता है। क्या फर्क पड़ता है? –

+2

यह एक ही कथन है। विलियम दो अलग-अलग बयान हैं। यही कारण है कि यह अधिक जटिल है। –

6

इस पद लौट छात्रों की रैंक, छात्र पहचान पत्र, और जीपीए वापस आ जाएगी होगा।

set @rownum := 0; 
SELECT @rownum := @rownum + 1 AS rank, student_id, gpa 
    FROM `students` ORDER BY gpa DESC 
संबंधित मुद्दे

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