Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
RATIOFungsi jendela _TO_ REPORT
Menghitung rasio nilai dengan jumlah nilai di jendela atau partisi. Rasio terhadap nilai laporan ditentukan dengan menggunakan rumus:
value of
ratio_expression ratio_expression argument for the current row / sum of
argument for the window or partition
Dataset berikut menggambarkan penggunaan rumus ini:
Row# Value Calculation RATIO_TO_REPORT 1 2500 (2500)/(13900) 0.1798 2 2600 (2600)/(13900) 0.1870 3 2800 (2800)/(13900) 0.2014 4 2900 (2900)/(13900) 0.2086 5 3100 (3100)/(13900) 0.2230
Rentang nilai pengembalian adalah 0 hingga 1, inklusif. Jika ratio_expression adalahNULL, maka nilai kembaliannya adalah. NULL
Jika nilai dalam partition_expression unik, maka fungsi akan kembali 1
untuk nilai itu.
Sintaks
RATIO_TO_REPORT ( ratio_expression ) OVER ( [ PARTITION BY partition_expression ] )
Argumen
- ratio_expression
-
Ekspresi, seperti nama kolom, yang memberikan nilai untuk menentukan rasio. Ekspresi harus memiliki tipe data numerik atau secara implisit dapat dikonversi menjadi satu.
Anda tidak dapat menggunakan fungsi analitik lainnya di ratio_expression.
- OVER
-
Sebuah klausa yang menentukan partisi jendela. OVERKlausul tidak dapat berisi urutan jendela atau spesifikasi bingkai jendela.
- PARTITIONOLEH partition_expression
-
Tidak wajib. Ekspresi yang menetapkan rentang catatan untuk setiap grup dalam OVER klausa.
Jenis pengembalian
FLOAT8
Contoh
Contoh berikut menggunakan WINSALES tabel. Untuk informasi tentang cara membuat WINSALES tabel, lihatContoh tabel untuk contoh fungsi jendela.
Contoh berikut menghitung ratio-to-report nilai setiap baris kuantitas penjual dengan total jumlah semua penjual.
select sellerid, qty, ratio_to_report(qty) over() from winsales order by sellerid;
sellerid qty ratio_to_report -------------------------------------- 1 30 0.13953488372093023 1 10 0.046511627906976744 1 10 0.046511627906976744 2 20 0.09302325581395349 2 20 0.09302325581395349 3 30 0.13953488372093023 3 20 0.09302325581395349 3 15 0.06976744186046512 3 10 0.046511627906976744 4 10 0.046511627906976744 4 40 0.18604651162790697
Contoh berikut menghitung rasio jumlah penjualan untuk setiap penjual dengan partisi.
select sellerid, qty, ratio_to_report(qty) over(partition by sellerid) from winsales;
sellerid qty ratio_to_report ------------------------------------------- 2 20 0.5 2 20 0.5 4 40 0.8 4 10 0.2 1 10 0.2 1 30 0.6 1 10 0.2 3 10 0.13333333333333333 3 15 0.2 3 20 0.26666666666666666 3 30 0.4