Query Untuk Mendapatkan Peringkat


Dalam reporting kita sering membutuhkan untuk menampilkan nomor baris atau peringkat. Menampilkan 10 score tertinggi. Misalkan kita memiliki tabel seperti ini:

Table: player

Field: playerid, name, score

sedangkan data yang dimiliki adalah ():

A001 windu purnomo 100
B001 Siti Hapshoh 99
A003 Deni Mahendra 95
A002 Prawito Hudoro 96

Dan dengan menggunakan mantra ajaib (query) kita akan mendapatkan reporting sebagai berikut (rank, playerid, name, score):

1 A001 windu purnomo 100
2 B001 Siti Hapshoh 99
3 A002 Prawito Hudoro 96
4 A003 Deni Mahendra 95

Nah berikut ini adalah query nya:

select @rownum:=@rownum+1 ‘rank’, p.* from player p, (SELECT @rownum:=0) r order by score desc limit 10;

Pertanyaan berikutnya, bagaimana kalau menginginkan hanya peringkatnya saja, dengan memasukan input berupa, nama atau id nya. Untuk menjawabnya kita lakukan sedikit penambahan pada query di atas sehingga menjadi:

select rank from (select @rownum:=@rownum+1 rank, p.* from player p, (SELECT @rownum:=0) r order by score desc limit 10) q where name = 'windu';

About windupurnomo

I'm interested in programming. I am active with several programming such as Java, C #, C, JavaScript, HTML. I'm also develop desktop application (Java Swing), Mobile Application (Android), and Web programming (ASP MVC).
This entry was posted in Basis Data and tagged , , , , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s