Oracle ratio_to_report()

Sore ini, saya mengalami kasus dimana saya ingin mendapatkan persentase nilai pada suatu row dibandingkan dengan jumlah seluruh nilai yang ada. Sebenernya bisa aja bikin PL/SQL tapi males, saya mau pake SQL aja, tapi ga ada ide. Di saat googling, berhasil nemu link ini: Calculating percentage of a row over total sum.

Intinya, kalau misal saya punya table seperti ini:

Orang | Jumlah_Mobil
Agus | 2
Budi | 3
Cucu | 5

Saya ingin datanya berubah jadi persentase dari keseluruhan, misal Agus = 2 / (2+3+5) = 20%, Budi = 30%, Cucu = 50%. Ternyata, hal ini bisa dicapai dengan mudah menggunakan analytical function ratio_to_report(). Contoh penggunaannya untuk kasus diatas begini:

select orang, ratio_to_report(jumlah_mobil) over() * 100 persentase

Dan nanti hasilnya akan otomatis jadi

Orang | Jumlah_Mobil
Agus | 20
Budi | 30
Cucu | 50

Keren banget lah Oracle, mangstap!

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s