Amazon Redshift tidak akan lagi mendukung penggunaan Python UDF setelah 30 Juni 2026. Kami akan mulai menegakkannya secara bertahap. Untuk informasi lebih lanjut tentang detail opsi akhir masa pakai dan migrasi Python, lihat posting blog
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Fungsi jendela RATIO_TO_REPORT
Menghitung rasio nilai dengan jumlah nilai di jendela atau partisi. Rasio terhadap nilai laporan ditentukan menggunakan rumus:
value of rasio_ekspresi rasio_ekspresi 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 adalah NULL, maka nilai kembalinya adalah. NULL Jika nilai dalam partition_expression unik, maka fungsi akan kembali 1 untuk nilai itu.
Sintaksis
RATIO_TO_REPORT ( ratio_expression ) OVER ( [ PARTITION BY partition_expression ] )
Argumen
- rasio_ekspresi
-
Sebuah 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.
- DI ATAS
-
Sebuah klausa yang menentukan partisi jendela. Klausa OVER tidak dapat berisi urutan jendela atau spesifikasi bingkai jendela.
- PARTISI DENGAN partition_expression
-
Tidak wajib. Ekspresi yang menetapkan rentang catatan untuk setiap grup dalam klausa OVER.
Jenis pengembalian
FLOAT8
Contoh
Contoh berikut menggunakan tabel WINSALES. Untuk informasi tentang cara membuat tabel WINSALES, lihatTabel sampel untuk contoh fungsi jendela.
Contoh berikut menghitung nilai rasio terhadap laporan dari 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 berdasarkan 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