Rumah > pangkalan data > tutorial mysql > Bagaimana untuk mengumpulkan cap masa ke dalam Selang 5 Minit untuk Kiraan Pertanyaan?

Bagaimana untuk mengumpulkan cap masa ke dalam Selang 5 Minit untuk Kiraan Pertanyaan?

Linda Hamilton
Lepaskan: 2025-01-15 08:15:45
asal
800 orang telah melayarinya

How to Group Timestamps into 5-Minute Intervals for Count Queries?

Kumpulkan cap masa mengikut selang 5 minit untuk pertanyaan kiraan

Soalan:

Pertanyaan untuk mengira bilangan kemunculan John dalam julat masa tertentu, tetapi hasilnya ialah cap masa yang tidak dikumpulkan dan kiraannya. Matlamatnya adalah untuk mengumpulkan hasil ke dalam selang 5 minit.

Penyelesaian:

Untuk mengumpulkan hasil dalam selang 5 minit, anda boleh menggunakan MySQL dan PostgreSQL dengan sintaks tertentu:

PostgreSQL:

<code class="language-sql">SELECT
    date_trunc('minute', timestamp) + INTERVAL '5 minutes' * (EXTRACT(MINUTE FROM timestamp)::integer / 5) AS five_minute_interval,
    name,
    COUNT(b.name)
FROM time a, id 
WHERE …
GROUP BY five_minute_interval, name
ORDER BY five_minute_interval;</code>
Salin selepas log masuk

MySQL:

<code class="language-sql">SELECT
    FROM_UNIXTIME(FLOOR(UNIX_TIMESTAMP(timestamp) / 300) * 300) AS five_minute_interval,
    name,
    COUNT(b.name)
FROM time a, id
WHERE …
GROUP BY five_minute_interval, name
ORDER BY five_minute_interval;</code>
Salin selepas log masuk

Dalam kedua-dua pertanyaan, klausa GROUP BY dikumpulkan mengikut hasil bulat cap waktu dibahagikan dengan 300 (mewakili selang 5 minit). Ini dengan berkesan mencipta tong 5 minit untuk cap masa dan menetapkan setiap cap masa kepada tong yang sepadan. PostgreSQL menggunakan fungsi date_trunc untuk mengendalikan pemotongan dan pengelompokan cap masa dengan lebih bersih, manakala MySQL menggunakan fungsi FROM_UNIXTIME dan FLOOR untuk mencapai fungsi yang sama.

Output:

Output kini akan menunjukkan hasil yang dikumpulkan mengikut selang 5 minit dan kiraan yang sepadan bagi bilangan kejadian John:

<code>five_minute_interval       name  COUNT(b.name)
------------------------  ----  -------------
2010-11-16 10:30:00       John  2
2010-11-16 10:35:00       John  10
2010-11-16 10:40:00       John  0
2010-11-16 10:45:00       John  8
2010-11-16 10:50:00       John  0
2010-11-16 10:55:00       John  11</code>
Salin selepas log masuk

Nota: Bahagian WHERE … dalam kod perlu diganti dengan syarat pertanyaan anda mengikut situasi sebenar. Selain itu, untuk memastikan kebolehbacaan keputusan, klausa ORDER BY five_minute_interval ditambah. Pernyataan SQL yang dipertingkatkan dengan lebih tepat melaksanakan pengelompokan pada selang 5 minit dan mengelakkan kemungkinan ralat pembundaran.

Atas ialah kandungan terperinci Bagaimana untuk mengumpulkan cap masa ke dalam Selang 5 Minit untuk Kiraan Pertanyaan?. 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