Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengira Jumlah Terkumpul dalam PostgreSQL Menggunakan Fungsi Tetingkap?
Kira jumlah terkumpul dalam PostgreSQL
Dalam pangkalan data PostgreSQL, anda boleh menggunakan fungsi tetingkap untuk mengira jumlah kumulatif (atau jumlah berjalan) medan daripada jadual sementara dan memindahkan keputusan ke jadual sasaran. Fungsi tetingkap membenarkan pengiraan dilakukan berdasarkan satu siri baris dalam partition, dalam kes ini, partition yang dibuat berdasarkan lajur circle_id
.
Sintaks fungsi tetingkap
Sintaks fungsi tetingkap yang digunakan di sini adalah seperti berikut:
<code class="language-sql">sum(amount) OVER (PARTITION BY circle_id ORDER BY ea_year, ea_month) AS cum_amt</code>
Fungsi tetingkap ini membahagikan mengikut lajur circle_id
, yang bermaksud jumlah terkumpul akan dikira secara berasingan untuk setiap circle_id
. Dalam setiap partition, baris diisih mengikut lajur ea_year
dan ea_month
, yang memastikan jumlah kumulatif dikira untuk setiap circle
bulan dari awal hingga terkini.
Contoh pertanyaan
Berdasarkan struktur jadual yang disediakan, pertanyaan berikut akan menjana hasil yang diperlukan:
<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>
Penerangan
Pertanyaan ini mengekstrak lajur yang berkaitan daripada jadual tbl
dan mengira jumlah kumulatif bagi setiap circle_id
. Klausa OVER
menentukan pembahagian dan susunan fungsi tetingkap, memastikan jumlah terkumpul dikira dengan betul untuk setiap circle
.
Nota Penting
OVER
ORDER BY
adalah penting untuk mendapatkan hasil yang diingini. ORDER BY
. Walau bagaimanapun, jika anda menggunakan perwakilan rentetan bulan, anda mungkin perlu menggunakan fungsi to_date()
untuk menukarnya kepada nilai tarikh. cum_amt
yang terhasil dalam jadual sasaran akan mengandungi jumlah kumulatif lajur amount
, dibahagikan dengan circle_id
dan diisih mengikut ea_year
dan ea_month
. 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!