Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mengira Jumlah Baris Berjalan setiap Minit dalam PostgreSQL?

Bagaimana untuk Mengira Jumlah Baris Berjalan setiap Minit dalam PostgreSQL?

Susan Sarandon
Lepaskan: 2025-01-19 00:52:09
asal
624 orang telah melayarinya

How to Calculate a Running Total of Rows per Minute in PostgreSQL?

PostgreSQL: Menjalankan jumlah bilangan baris pertanyaan mengikut minit

Gambaran Keseluruhan Masalah

Anda perlu mendapatkan jumlah bilangan baris seminit sehingga masa tertentu itu.

Cara terbaik untuk mengira jumlah

<code class="language-sql">SELECT DISTINCT date_trunc('minute', "when") AS minute,
       count(*) OVER (ORDER BY date_trunc('minute', "when")) AS running_ct
FROM   mytable
ORDER  BY 1;</code>
Salin selepas log masuk

Pertanyaan ini menggunakan fungsi date_trunc() untuk mengeluarkan hanya bahagian minit medan "bila". Fungsi count() diagregatkan pada komponen minit terpotong ini sebagai fungsi tetingkap menyediakan jumlah berjalan.

Cara terpantas

<code class="language-sql">SELECT minute, sum(minute_ct) OVER (ORDER BY minute) AS running_ct
FROM  (
   SELECT date_trunc('minute', "when") AS minute,
          count(*) AS minute_ct
   FROM   tbl
   GROUP  BY 1
   ) sub
ORDER  BY 1;</code>
Salin selepas log masuk

Pertanyaan ini diagregatkan menjadi subkueri untuk mengira bilangan baris seminit. Ia kemudian melakukan jumlah berjalan menggunakan fungsi tetingkap.

Kendalikan minit tidak aktif

Untuk memastikan setiap minit dikira, walaupun yang tiada aktiviti:

<code class="language-sql">SELECT m.minute,
       COALESCE(sum(c.minute_ct) OVER (ORDER BY m.minute), 0) AS running_ct
FROM  (
   SELECT generate_series(date_trunc('minute', min("when")),
                          max("when"),
                          interval '1 min')
   FROM   tbl
   ) m(minute)
LEFT   JOIN (
   SELECT date_trunc('minute', "when") AS minute,
          count(*) AS minute_ct
   FROM   tbl
   GROUP  BY 1
   ) c USING (minute)
ORDER  BY 1;</code>
Salin selepas log masuk

Pertanyaan ini menggunakan generate_series() untuk mencipta baris bagi setiap minit dalam julat dan LEFT JOIN untuk mengira dan meringkaskan baris dalam jadual asas.

Atas ialah kandungan terperinci Bagaimana untuk Mengira Jumlah Baris Berjalan setiap Minit dalam PostgreSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan