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

Bagaimana menemukan peringkat ke-n di MySQL?

Sering kali Anda perlu menemukan peringkat ke-n di MySQL. Misalnya menemukan peringkat ke-3 di kelas siswa. Siswa diberi peringkat berdasarkan skor. Untuk menemukan peringkat ke-n di MySQL, pertama-tama kita akan memberi peringkat pada record. Kemudian kita menyaring peringkat ke-n di MySQL. Berikut kueri yang dapat Anda gunakan. Ganti saja nama tabel skor dan nama kolom id, skor.

Temukan peringkat ke-n 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 |
+----+------+

Di sini kami menemukan rekor dengan peringkat 3 . Kueri berikut memberi peringkat catatan berdasarkan peningkatan skor. Kemudian menyaring catatan dengan peringkat 3:

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

(SELECT @curRank := 0)

part memungkinkan inisialisasi variabel tanpa memerlukan perintah SET terpisah.

Result:
+----+------+------+
| id | score| rank |
+----+------+------+
| 5  |   20 |    3 |
+----+------+------+
1 row in set (0.0 sec)

Temukan peringkat ke-n di MySQL berdasarkan penurunan nilai

Jika Anda ingin menemukan peringkat ke-n di MySQL berdasarkan urutan penurunan skor, tambahkan saja kata kunci DESC dalam kueri. Di sini kami menemukan rekor dengan peringkat 3.

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

Hasil:

+----+------+------+
| id | score| rank |
+----+------+------+
| 3  |   30 |    3 |
+----+------+------+
1 row in set (0.0 sec)

Anda dapat menerapkan metode di atas untuk mendapatkan peringkat ke-n untuk semua jenis metrik seperti gaji, jumlah karyawan, dll.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kelompokkan Baris Menggunakan Group By Clause Di MySQL

  2. NodeJS MySQL Dump

  3. Menghubungkan ke MySQL Menggunakan Python

  4. Bagaimana saya bisa mengubah MariaDB ke MySQL di XAMPP?

  5. Cara Menyisipkan Beberapa Baris dalam Satu SQL Query – Pertanyaan Wawancara Minggu Ini #069