Rumah > pangkalan data > tutorial mysql > Bagaimana Mencari Nilai Minimum dan Maksimum untuk Baris Berturut-turut Berdasarkan Nilai Akta Tertentu?

Bagaimana Mencari Nilai Minimum dan Maksimum untuk Baris Berturut-turut Berdasarkan Nilai Akta Tertentu?

Linda Hamilton
Lepaskan: 2025-01-05 08:44:41
asal
396 orang telah melayarinya

How to Find Minimum and Maximum Values for Consecutive Rows Based on Specific Act Values?

Mengenal pasti Kumpulan Baris Berturut-turut untuk Pengagregatan

Isu:
Dapatkan nilai minimum dan maksimum bagi permulaan dan berakhir untuk baris berturut-turut nilai perbuatan tertentu. Setiap nama unik mentakrifkan urutan kejadian perbuatan yang berbeza. Input tidak memberikan lajur tambahan untuk pengenalan baris.

Pendekatan:

Untuk mewujudkan identiti baris dalam setiap kumpulan tindakan nama, kami menggunakan nombor baris:

row_number() over (partition by name, act order by rn) as act_n
row_number() over (partition by name order by rn) as rn
Salin selepas log masuk

Nombor baris ini membolehkan kami membezakan baris dalam kumpulan dan mengenal pasti julat tindakan yang berturutan nilai.

Mengagregatkan untuk Min dan Maks:

Untuk mencari output yang diingini bagi setiap gabungan nama-tindakan, kami mengagregatkan data dalam kumpulan baris berturut-turut. Pengiraan utama ialah perbezaan antara dua nombor baris:

rn - act_n diff
Salin selepas log masuk

Perbezaan ini mewakili kedudukan dalam setiap kumpulan, membolehkan kami menentukan julat berturut-turut.

select name, act, min(startt) startt, max(endd) endd
from (
  select
    name,
    act,
    row_number() over (partition by name order by name, startt) rn,
    row_number() over (partition by name, act order by name, startt) act_n,
    startt,
    endd
  from @t
)
group by (rn - act_n), name, act
order by name;
Salin selepas log masuk

Pertanyaan ini mengumpulkan data mengikut perbezaan nombor baris, memberikan output yang diingini.

Atas ialah kandungan terperinci Bagaimana Mencari Nilai Minimum dan Maksimum untuk Baris Berturut-turut Berdasarkan Nilai Akta Tertentu?. 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