Database
 sql >> Teknologi Basis Data >  >> RDS >> Database

Cara Menambahkan Posisi Peringkat Baris dalam SQL dengan RANK()

Masalah:

Anda ingin membuat peringkat rekor dengan melewatkan posisi peringkat setelah baris yang memiliki peringkat yang sama.

Contoh:

Basis data kami memiliki tabel bernama championship dengan data pada kolom berikut:id (kunci utama), user_name , dan score .

id nama_pengguna skor
111 John 12
112 Maria 23
115 Lisa 45
120 Alan 23
221 Kris 23

Mari kita tampilkan semua nama pengguna dan skor mereka diurutkan dalam urutan menurun dan diberi peringkat berdasarkan skor.

Solusi 1:

SELECT RANK() OVER(ORDER BY score DESC) AS rank_place,
  user_name,
  score
FROM championship;

Kueri ini mengembalikan peringkat berikut:

rank_place nama_pengguna skor
1 Lisa 45
2 Maria 23
2 Alan 23
2 Kris 23
5 John 12

Perhatikan bahwa nomor peringkat adalah dari 1 hingga 5, diurutkan berdasarkan skor dalam urutan menurun.

Diskusi:

Gunakan RANK jika Anda ingin melewati posisi peringkat setelah baris dengan peringkat yang sama. Dalam contoh kita, Mary, Alan, dan Chris semuanya memiliki peringkat yang sama 2. Posisi yang memenuhi syarat berikutnya adalah 5 (dihitung dari 2 + 3 baris dengan peringkat yang sama).


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Perencanaan Ruang Disk untuk Basis Data

  2. Model Basis Data untuk Survei Online. Bagian 3

  3. Pelajari Analisis Data Dasar dengan Fungsi SQL Window

  4. ZDLRA – RMAN-20035 RECID tinggi tidak valid

  5. Mendasarkan Model Basis Data dalam Kenyataan:Tantangan Seorang Blogger