Permintaan maaf untuk gelar yang buruk, saya tidak yakin apa yang akan menjadi judul yang bagus untuk ini.
Ini saat ini (tampilan disederhanakan) data yang saya kerjakan
Agent | Commission
---------|------------
Smith | 100
Neo | 200
Morpheus | 300
Saya perlu menghitung persentase dari total komisi, masing-masing agen bertanggung jawab untuk itu.
Jadi, untuk Agen Smith, Persentase akan dihitung sebagai (Agent Smith's commission / Sum(commission)*100
Jadi, data saya yang diharapkan
Agent | Commission | % Commission
---------|---------------|---------------
Smith | 100 | 17
Neo | 200 | 33
Morpheus | 300 | 50
Saya memiliki fungsi mengembalikan komisi untuk setiap agen. Saya memiliki fungsi lain mengembalikan persentase sebagai (Commission/Sum(Commission))*100
. Masalahnya adalah bahwa Sum(commission)
akan dihitung untuk setiap baris, dan mengingat bahwa kueri ini akan dijalankan pada Gudang Data, kumpulan data akan lebih besar (saat ini, hanya di bawah 2.000 catatan) dan cukup jujur, pendekatan yang buruk (IMO ).
Apakah ada cara agar Sum(Commission)
tidak menghitung untuk setiap baris yang diambil?
Saya sedang memikirkan sesuatu pada baris permintaan 2 bagian, bagian pertama akan mengambilnya sum(commission)
menjadi variabel paket / tipe dan bagian kedua akan merujuk pada nilai pra-perhitungan ini, tapi saya tidak yakin bagaimana saya bisa mencapai ini.
Saya terbatas menggunakan SQL, dan saya menjalankan Oracle 10g R2.