Pengiraan jumlah terkumpul dalam PostgreSQL
Dalam pemprosesan data, selalunya perlu mengira jumlah kumulatif atau jumlah larian medan tertentu. Dalam PostgreSQL, ini boleh dicapai dengan mudah menggunakan fungsi tetingkap.
Pengenalan kepada fungsi tetingkap
Fungsi tetingkap membolehkan anda melakukan pengiraan pada baris yang dikumpulkan bersama berdasarkan syarat tertentu. Dalam contoh ini, kami ingin mengumpulkan baris dengan circle_id
dan mengira jumlah kumulatif medan amount
.
Pertanyaan untuk mengira jumlah kumulatif
Pertanyaan berikut menunjukkan cara mengira jumlah terkumpul:
<code class="language-sql">SELECT ea_month, id, amount, ea_year, circle_id, sum(amount) OVER (PARTITION BY circle_id ORDER BY ea_year, ea_month) AS cum_amt FROM tbl ORDER BY circle_id, ea_year, ea_month;</code>
Dalam pertanyaan ini:
PARTITION BY
mengumpulkan baris mengikut lajur circle_id
. ORDER BY
mengisih baris dalam setiap partition mengikut ea_year
dan ea_month
. OVER
mentakrifkan tetingkap yang menggunakan fungsi sum()
pada baris bermula dari setiap partition ke baris semasa. cum_amt
. Memproses data tarikh dan masa
Jika lajur ea_year
dan ea_month
anda disimpan sebagai rentetan, pertanyaan akan diisih mengikut abjad dan bukannya mengikut kronologi. Untuk mengisih dengan betul, pertimbangkan untuk menukarnya kepada jenis tarikh sebelum melakukan pengiraan.
Kecualikan rakan sebaya
Dalam PostgreSQL 11 dan lebih baru, anda boleh menggunakan pilihan frame_exclusion
untuk mengawal cara rakan sebaya dikendalikan dalam fungsi tetingkap. Ini membolehkan anda memasukkan atau mengecualikan baris tertentu daripada pengiraan.
Mengikut langkah ini, anda boleh mengira jumlah terkumpul dalam PostgreSQL dengan cekap, memberikan cerapan berharga ke dalam data anda.
Atas ialah kandungan terperinci Bagaimana untuk Mengira Jumlah Terkumpul dalam PostgreSQL Menggunakan Fungsi Tetingkap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!