Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Fungsi jendela COUNT
Fungsi jendela COUNT menghitung baris yang ditentukan oleh ekspresi.
Fungsi COUNT memiliki dua variasi. COUNT (*) menghitung semua baris dalam tabel target apakah mereka termasuk nol atau tidak. COUNT (ekspresi) menghitung jumlah baris dengan nilai non-Null dalam kolom atau ekspresi tertentu.
Sintaks
COUNT ( * | [ ALL ] expression) OVER ( [ PARTITION BY expr_list ] [ ORDER BY order_list frame_clause ] )
Argumen
- ekspresi
-
Kolom target atau ekspresi tempat fungsi beroperasi.
- SEMUA
-
Dengan argumen ALL, fungsi mempertahankan semua nilai duplikat dari ekspresi untuk menghitung. ALL adalah default. DISTINCT tidak didukung.
- DI ATAS
-
Menentukan klausa jendela untuk fungsi agregasi. Klausa OVER membedakan fungsi agregasi jendela dari fungsi agregasi set normal.
- PARTISI OLEH expr_list
-
Mendefinisikan jendela untuk fungsi COUNT dalam hal satu atau lebih ekspresi.
- PESANAN BERDASARKAN order_list
-
Mengurutkan baris dalam setiap partisi. Jika tidak ada PARTITION BY yang ditentukan, ORDER BY menggunakan seluruh tabel.
- frame_clause
-
Jika klausa ORDER BY digunakan untuk fungsi agregat, klausa bingkai eksplisit diperlukan. Klausa bingkai menyempurnakan kumpulan baris di jendela fungsi, termasuk atau mengecualikan kumpulan baris dalam hasil yang diurutkan. Klausa bingkai terdiri dari kata kunci ROWS dan penentu terkait. Lihat Ringkasan sintaks fungsi jendela.
Jenis data
Fungsi COUNT mendukung semua tipe data argumen.
Jenis pengembalian yang didukung oleh fungsi COUNT adalah BIGINT.
Contoh
Contoh berikut menunjukkan ID penjualan, kuantitas, dan jumlah semua baris dari awal jendela data:
select salesid, qty, count(*) over (order by salesid rows unbounded preceding) as count from winsales order by salesid; salesid | qty | count ---------+-----+----- 10001 | 10 | 1 10005 | 30 | 2 10006 | 10 | 3 20001 | 20 | 4 20002 | 20 | 5 30001 | 10 | 6 30003 | 15 | 7 30004 | 20 | 8 30007 | 30 | 9 40001 | 40 | 10 40005 | 10 | 11 (11 rows)
Untuk deskripsi tabel WINSALES, lihatContoh tabel untuk contoh fungsi jendela.
Contoh berikut menunjukkan bagaimana ID penjualan, kuantitas, dan jumlah baris non-null dari awal jendela data. (Dalam tabel WINSALES, kolom QTY_SHIPPED berisi beberapa.) NULLs
select salesid, qty, qty_shipped, count(qty_shipped) over (order by salesid rows unbounded preceding) as count from winsales order by salesid; salesid | qty | qty_shipped | count ---------+-----+-------------+------- 10001 | 10 | 10 | 1 10005 | 30 | | 1 10006 | 10 | | 1 20001 | 20 | 20 | 2 20002 | 20 | 20 | 3 30001 | 10 | 10 | 4 30003 | 15 | | 4 30004 | 20 | | 4 30007 | 30 | | 4 40001 | 40 | | 4 40005 | 10 | 10 | 5 (11 rows)