PostgreSQL: Kira kiraan baris hasil pertanyaan mengikut minit
Artikel ini menerangkan cara menggunakan fungsi tetingkap dalam PostgreSQL untuk mengira bilangan baris berjalan hasil pertanyaan mengikut minit.
1. Bilangan baris seminit
Pertanyaan berikut mengembalikan bilangan baris seminit:
<code class="language-sql">SELECT COUNT(id) AS count, EXTRACT(hour FROM "when") AS hour, EXTRACT(minute FROM "when") AS minute FROM mytable GROUP BY hour, minute;</code>
2. Bilangan terkumpul baris seminit
Untuk mengira bilangan terkumpul baris seminit, anda boleh menggunakan pertanyaan berikut:
<code class="language-sql">SELECT DISTINCT date_trunc('minute', "when") AS minute, COUNT(*) OVER (ORDER BY date_trunc('minute', "when")) AS running_count FROM mytable ORDER BY minute;</code>
Arahan:
date_trunc('minute', "when")
Potong lajur cap masa "bila" kepada minit terdekat. COUNT(*) OVER (ORDER BY date_trunc('minute', "when"))
Mengira bilangan baris yang dijalankan seminit. Klausa ORDER BY
menentukan susunan baris agregat. DISTINCT
digunakan untuk memastikan bahawa hanya minit unik dikembalikan. Ini kerana fungsi agregat COUNT
akan mengembalikan berbilang baris untuk minit yang sama. 3. Termasuk minit tanpa aktiviti
Jika anda ingin memasukkan minit tanpa aktiviti dalam hasil carian, anda boleh menggunakan pertanyaan berikut:
<code class="language-sql">SELECT m.minute, COALESCE(SUM(c.minute_count) OVER (ORDER BY m.minute), 0) AS running_count FROM ( SELECT generate_series(MIN(minute), MAX(minute), INTERVAL '1 minute') AS minute FROM ( SELECT date_trunc('minute', "when") AS minute, COUNT(*) AS minute_count FROM mytable GROUP BY minute ) AS sub ) AS m LEFT JOIN ( SELECT date_trunc('minute', "when") AS minute, COUNT(*) AS minute_count FROM mytable GROUP BY minute ) AS c ON m.minute = c.minute ORDER BY m.minute;</code>
Arahan:
LEFT JOIN
untuk memasukkan minit tanpa aktiviti. generate_series()
Fungsi menjana julat minit antara minit minimum dan maksimum dalam jadual. COALESCE()
memastikan bahawa minit tanpa aktiviti mempunyai kiraan larian 0. Atas ialah kandungan terperinci Bagaimana untuk Mengira Kiraan Baris Berjalan mengikut Minit dalam PostgreSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!