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;
Penjelasan:
Buat ungkapan jadual biasa (CTE) dipanggil cte dengan menambah dua lajur tambahan:
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!