Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL में समान वज़न वाले रिकॉर्ड को कैसे रैंक करें?

Giorgos's fiddle का उपयोग कर रहे हैं...

SELECT name
     , marks
     , FIND_IN_SET(marks, (SELECT GROUP_CONCAT(marks ORDER BY marks DESC) FROM mytable)) rank
  FROM mytable;

|     Name | Marks | rank |
|----------|-------|------|
| StudentA |    90 |    1 |
| StudentB |    85 |    2 |
| StudentC |    85 |    2 |
| StudentD |    70 |    4 |

http://sqlfiddle.com/#!9/7cc30/6

या

SELECT name, marks, rank
FROM (SELECT name
     , marks
     , @prev := @curr
     , @curr := marks
     , @i:[email protected]+1 temp
     , @rank := IF(@prev = @curr, @rank, @i) AS rank
  FROM mytable
     , ( SELECT @curr := null, @prev := null, @rank := 0, @i:=0) vars
 ORDER 
    BY marks DESC,name
      ) x
      ORDER 
    BY marks DESC,name

http://sqlfiddle.com/#!9/287e07/9



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एंड्रॉइड ऐप में लॉग इन पेज कैसे बनाएं?

  2. Mysql संग्रहीत कार्य और समूहवार न्यूनतम

  3. प्लेसहोल्डर में पर्ल के डीबीआई भरने के बाद निष्पादित SQL क्वेरी को मैं कैसे प्रिंट कर सकता हूं?

  4. मैं MySQL में किसी उपयोगकर्ता के लिए डिफ़ॉल्ट स्कीमा कैसे सेट करूं

  5. कैसे mysql में तारीखों की विशिष्ट श्रेणी के साथ रिपोर्ट बनाएं