Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mencapai KUMPULAN MENGIKUT Ketepatan /- 3 Saat Apabila Bekerja dengan Data DateTime dalam MySQL?

Bagaimana untuk Mencapai KUMPULAN MENGIKUT Ketepatan /- 3 Saat Apabila Bekerja dengan Data DateTime dalam MySQL?

Susan Sarandon
Lepaskan: 2024-10-24 06:59:02
asal
952 orang telah melayarinya

How to Achieve GROUP BY Precision of  /- 3 Seconds When Working with DateTime Data in MySQL?

MySQL GROUP MENGIKUT DateTime dengan /- Ketepatan 3 Saat

Pernyataan Masalah

Diberi jadual dengan lajur untuk ID, cap masa dan tajuk, matlamatnya adalah untuk mengumpulkan rekod yang berlaku dalam masa 3 saat antara satu sama lain. Dalam senario ini, baris dengan cap masa 15:00:00 dan 15:00:02 akan dikumpulkan bersama.

Penyelesaian

Daripada mengenal pasti permulaan berasaskan rantai pada baris individu, mari fokus pada merantai cap masa.

Pertanyaan 1: Tentukan Cap Masa Permulaan Rantaian

<code class="mysql">SELECT DISTINCT Timestamp
FROM Table a
LEFT JOIN Table b
ON (b.Timestamp >= a.Timestamp - INTERVAL 3 SECONDS
    AND b.Timestamp < a.Timestamp)
WHERE b.Timestamp IS NULL
Salin selepas log masuk

Pertanyaan ini mengembalikan cap masa yang tidak mempunyai cap masa di atasnya dalam 3 saat, menunjukkan permulaan rantai.

Pertanyaan 2: Kaitkan Rekod dengan Cap Masa Permulaan Rantaian

<code class="mysql">SELECT Table.id, MAX(StartOfChains.TimeStamp) AS ChainStartTime
FROM Table
JOIN ([query #1]) StartOfChains
ON Table.Timestamp >= StartOfChains.TimeStamp
GROUP BY Table.id</code>
Salin selepas log masuk

Untuk setiap baris, pertanyaan ini mengenal pasti rantaian terbesar -cap masa permulaan (berlaku sebelum cap masa baris).

KUMPULAN Akhir MENGIKUT Operasi

<code class="mysql">SELECT COUNT(*) --or whatever
FROM Table
JOIN ([query #2]) GroupingQuery
ON Table.id = GroupingQuery.id
GROUP BY GroupingQuery.ChainStartTime</code>
Salin selepas log masuk

Pertanyaan ini menggunakan jadual GroupingQuery daripada Pertanyaan 2 untuk mengumpulkan rekod berdasarkan lajur ChainStartTime, membolehkan pengiraan agregat dalam setiap kumpulan masa.

Atas ialah kandungan terperinci Bagaimana untuk Mencapai KUMPULAN MENGIKUT Ketepatan /- 3 Saat Apabila Bekerja dengan Data DateTime dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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