Rumah > pangkalan data > tutorial mysql > Bagaimana Mencari Masa Mula dan Tamat Minimum dan Maksimum untuk Baris Berturut-turut dalam Kumpulan Aktiviti?

Bagaimana Mencari Masa Mula dan Tamat Minimum dan Maksimum untuk Baris Berturut-turut dalam Kumpulan Aktiviti?

Susan Sarandon
Lepaskan: 2025-01-03 01:03:39
asal
676 orang telah melayarinya

How to Find Minimum and Maximum Start and End Times for Consecutive Rows within Activity Groups?

Mencari Nilai Minimum dan Maksimum untuk Baris Berturut-turut

Anda mempunyai set data dengan baris yang mewakili aktiviti, dikumpulkan mengikut nama dan disusun mengikut nombor baris. Matlamatnya adalah untuk mencari nilai minimum dan maksimum masa mula dan tamat untuk baris berturut-turut dalam setiap kumpulan aktiviti.

Penyelesaian Menggunakan Perbezaan Nombor Baris:

Satu pendekatan ialah untuk menggunakan perbezaan antara nombor baris untuk mengenal pasti baris berturut-turut yang sama aktiviti:

with cte as (
  select *,
    row_number() over (partition by name order by rn) as seqnum_n,
    row_number() over (partition by name, act order by rn) as seqnum_na
  from input
)
select name, act, min(startt), max(endd)
from cte
group by seqnum_n - seqnum_na, name, act;
Salin selepas log masuk

Penjelasan:

  1. Buat ungkapan jadual biasa (CTE) dipanggil cte dengan menambah dua lajur tambahan:

    • seqnum_n: Nombor baris dalam setiap nama kumpulan.
    • seqnum_na: Nombor baris dalam setiap kumpulan nama-aktiviti.
  2. Kira perbezaan antara seqnum_n dan seqnum_na. Baris berturut-turut dalam setiap aktiviti mempunyai nilai perbezaan yang sama.
  3. himpunkan mengikut nilai perbezaan, nama dan aktiviti untuk mengagregat nilai minimum dan maksimum.

Atas ialah kandungan terperinci Bagaimana Mencari Masa Mula dan Tamat Minimum dan Maksimum untuk Baris Berturut-turut dalam Kumpulan Aktiviti?. 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