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

mysql में उपयोगकर्ताओं को उनके अंकों के आधार पर रैंक करें

यह चर का उपयोग करके गॉर्डन समाधान का सिर्फ एक फिक्स है। बात यह है कि आपका रैंक फ़ंक्शन उस तरह से नहीं है जैसे रैंक को काम करना चाहिए। (छात्र 4 रैंक 4 होना चाहिए)

SQL Fiddle Demo परीक्षण को बेहतर बनाने के लिए आप और विद्यार्थी जोड़ सकते हैं।

select er.*,
       (@rank := if(@points = points, 
                    @rank, 
                    if(@points := points,    
                       @rank + 1, 
                       @rank + 1                       
                      )
                   )                  
       ) as ranking
from students er cross join
     (select @rank := 0, @points := -1) params
order by points desc;

आउटपुट

| id | points | ranking |
|----|--------|---------|
|  1 |     80 |       1 |
|  2 |     78 |       2 |
|  3 |     78 |       2 |
|  4 |     77 |       3 |
|  5 |     66 |       4 |
|  6 |     66 |       4 |
|  7 |     66 |       4 |
|  8 |     15 |       5 |


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. तालिका अपडेट होने पर MySQL ट्रिगर से ईमेल भेजें

  2. रेल में प्राथमिक कुंजी के साथ टेबल और समस्याएं बनाना

  3. कमांड लाइन के माध्यम से डेटाबेस कैसे निर्यात करें?

  4. सत्र में क्रेडिट कार्ड नंबर संग्रहित करना - इसके उपाय?

  5. मैं PHP का उपयोग करके MySQL में '€' प्रतीक को कैसे स्टोर कर सकता हूं?