Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara menghitung peringkat di MySQL

Sering kali Anda perlu menghitung peringkat di MySQL. Anda dapat memesan dengan nomor atau teks tetapi tidak dapat menghitung peringkat di MySQL dengan mudah. Berikut kueri yang dapat Anda gunakan. Ganti saja nama tabel skor dan nama kolom id, skor.

Menghitung peringkat di MySQL berdasarkan nilai yang meningkat

Contoh:

CREATE TABLE score (id int, score int);
INSERT INTO scores VALUES (1, 35),(2, 10),(3,30),(4,22),(5,20),(6,18),(7,36);
Scores:
+----+------+
| id | score|
+----+------+
| 1  |   35 |
| 2  |   10 |
| 3  |   30 |
| 4  |   22 |
| 5  |   20 |
| 6  |   18 |
| 7  |   36 |
+----+------+

Kami menggunakan variabel peringkat, seperti berikut:

SELECT    id,score,
          @curRank := @curRank + 1 AS rank
FROM      scores p, (SELECT @curRank := 0) r
ORDER BY  score;

(SELECT @curRank := 0)

part memungkinkan inisialisasi variabel tanpa memerlukan perintah SET terpisah.

Result:
+----+------+------+
| id | score| rank |
+----+------+------+
| 2  |   10 |    1 |
| 6  |   18 |    2 |
| 5  |   20 |    3 |
| 4  |   22 |    4 |
| 3  |   30 |    5 |
| 1  |   35 |    6 |
| 7  |   36 |    7 |
+----+------+------+
7 rows in set (0.02 sec)

Menghitung peringkat di MySQL berdasarkan penurunan nilai

Jika Anda ingin menghitung peringkat di MySQL berdasarkan urutan penurunan skor, tambahkan saja kata kunci DESC dalam kueri.

SELECT    id,score,
          @curRank := @curRank + 1 AS rank
FROM      scores p, (SELECT @curRank := 0) r
ORDER BY  score DESC;

Hasil:

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara memotong tabel yang dibatasi kunci asing?

  2. MySQL:apakah pernyataan SELECT peka terhadap huruf besar-kecil?

  3. Nonaktifkan Login Root di phpMyAdmin

  4. Bagaimana cara melihat indeks untuk database atau tabel di MySQL?

  5. Bagaimana saya bisa menghilangkan komentar ini di dump MySQL?