View a markdown version of this page

Fungsi jendela AVG - Amazon Redshift

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 yang diterbitkan pada 30 Juni 2025.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Fungsi jendela AVG

Fungsi jendela AVG mengembalikan rata-rata (rata-rata aritmatika) dari nilai ekspresi input. Fungsi AVG bekerja dengan nilai numerik dan mengabaikan nilai NULL.

Sintaksis

AVG ( [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 AVG 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_klausa

Jika klausa ORDER BY digunakan untuk fungsi agregat, klausa frame eksplisit diperlukan. Klausa frame memurnikan 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

Jenis argumen yang didukung oleh fungsi AVG adalah SMALLINT, INTEGER, BIGINT, NUMERIC, DECIMAL, REAL, dan DOUBLE PRECISION.

Jenis pengembalian yang didukung oleh fungsi AVG adalah:

  • BIGINT untuk argumen SMALINT atau INTEGER

  • NUMERIK untuk argumen BIGINT

  • PRESISI GANDA untuk argumen float point

Contoh

Contoh berikut menghitung rata-rata bergulir jumlah yang dijual berdasarkan tanggal; urutkan hasil berdasarkan ID tanggal dan ID penjualan:

select salesid, dateid, sellerid, qty, avg(qty) over (order by dateid, salesid rows unbounded preceding) as avg from winsales order by 2,1; salesid | dateid | sellerid | qty | avg ---------+------------+----------+-----+----- 30001 | 2003-08-02 | 3 | 10 | 10 10001 | 2003-12-24 | 1 | 10 | 10 10005 | 2003-12-24 | 1 | 30 | 16 40001 | 2004-01-09 | 4 | 40 | 22 10006 | 2004-01-18 | 1 | 10 | 20 20001 | 2004-02-12 | 2 | 20 | 20 40005 | 2004-02-12 | 4 | 10 | 18 20002 | 2004-02-16 | 2 | 20 | 18 30003 | 2004-04-18 | 3 | 15 | 18 30004 | 2004-04-18 | 3 | 20 | 18 30007 | 2004-09-07 | 3 | 30 | 19 (11 rows)

Untuk deskripsi tabel WINSALES, lihatTabel sampel untuk contoh fungsi jendela.