Tips dan Trik IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
Djoni Darmawikarta
djoni_darmawikarta@yahoo.ca
Lisensi Dokumen:
Copyright © 2003 IlmuKomputer.Com
Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan
secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus
atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap
dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin
terlebih dahulu dari IlmuKomputer.Com.
Misalkan kita punya table data Oracle sebagai berikut:
Kode
kantor
cabang
1
1
1
1
1
1
1
2
2
3
3
3
3
Salesman
Hari
Badai
Cucuk
Dedi
Adi
Henny
Betti
Agung
Indro
Irawan
Zahrul
Zul
Budi
Nilai
penjual
an
100
150
150
150
125
75
75
200
225
50
50
75
100
PENJUALAN TERTINGGI
Kita ingin mencari, misalnya 3 penjualan tertinggi (top 3) disetiap kantor cabang
dengan menggunakan SQL query. Oracle menyediakan fungsi DENSE_RANK yang
dapat kita manfaatkan sebagai berikut:
SELECT kode_kantor_cabang,salesman,nilai_penjualan,ranking
FROM (SELECT kode_kantor_cabang,salesman,nilai_penjualan,
DENSE_RANK() OVER (PARTITION BY kode_kantor_cabang
ORDER BY nilai_penjualan DESC) ranking FROM salesdata)
WHERE ranking <= 3
Hasil query ini adalah:
1
Tips dan Trik IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
KODE_KANTOR_CABANG
------------------
1
1
1
1
1
2
2
3
3
3
3
SALESMANNILAI_PENJUALANRANKING
---------- --------------- ----------
Badai1501
Cucuk1501
Dedi1501
Adi1252
Hari1003
Indro2251
Agung2002
Budi1001
Zul752
Irawan503
Zahrul503
PENJUALAN TERENDAH
Hasil query ini adalahSQL query berikut menghasilkan 3 penjualan terendah (bottom
3) – cukup dengan mengganti DESC (descending - urutan menurun) menjadi ASC
(ascending – urutan menaik)
SELECT kode_kantor_cabang,salesman,nilai_penjualan, ranking
FROM (SELECT kode_kantor_cabang,salesman,nilai_penjualan,
DENSE_RANK() OVER (PARTITION BY kode_kantor_cabang
ORDER BY nilai_penjualan ASC) ranking
FROM salesdata) WHERE ranking <= 3
Hasilnya:
KODE_KANTOR_CABANG
------------------
1
1
1
1
2
2
3
3
3
3
SALESMANNILAI_PENJUALANRANKING
---------- --------------- ----------
Henny751
Betti751
Hari1002
Adi1253
Agung2001
Indro2252
Irawan501
Zahrul501
Zul752
Budi1003
Next
« Prev Post
« Prev Post
Previous
Next Post »
Next Post »
1 Komentar untuk "Mencari Data Tertinggi dan Terendah dengan SQL di Oracle"
Terimakasih banyak ata informasinya...
Informasi Pilihan Identitas:
Google/Blogger : Khusus yang punya Account Blogger.
Lainnya : Jika tidak punya account blogger namun punya alamat Blog atau Website.
Anonim : Jika tidak ingin mempublikasikan profile anda (tidak disarankan).