Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mencari Nilai permulaan dan tamat Minimum dan Maksimum dalam Subset Berturut-turut Nilai perbuatan yang Sama?

Bagaimana untuk Mencari Nilai permulaan dan tamat Minimum dan Maksimum dalam Subset Berturut-turut Nilai perbuatan yang Sama?

Barbara Streisand
Lepaskan: 2024-12-22 12:36:14
asal
275 orang telah melayarinya

How to Find Minimum and Maximum startt and endd Values within Consecutive Subsets of Identical act Values?

Nilai Min dan Maks Subset Baris Berturut-turut

Mencari pertanyaan yang mengenal pasti dan mengagregatkan nilai mula dan tamat dalam subset berturut-turut nilai tindakan yang sama, soalan ini mendalami manipulasi dan pengagregatan data teknik.

Untuk mendekati masalah ini, kita boleh menggunakan langkah-langkah berikut:

  1. Tetapkan Nombor Baris Unik:
    Pecahkan data mengikut nama dan tetapkan nombor baris berurutan untuk setiap nilai tindakan dalam setiap kumpulan nama. Ini membolehkan kita membezakan baris berturut-turut.
  2. Hitung Perbezaan Baris:
    Kira perbezaan antara nombor baris untuk setiap tindakan (iaitu, rn - act_n). Perbezaan ini mewakili kedudukan nilai akta dalam subset berturut-turut.
  3. Kedudukan Berturut-turut Kumpulan mengikut Akta:
    Agregat data menggunakan perbezaan baris sebagai kunci pengumpulan. Ini mengumpulkan baris yang tergolong dalam subset berturut-turut yang sama.
  4. Cari Minimum dan Maksimum:
    Dalam setiap subset berkumpulan, hitung nilai minimum dan maksimum bagi permulaan dan tamat. Ini memberikan output yang diingini.

Pertanyaan berikut melaksanakan pendekatan ini:

with cte as (
  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 input
)
select
    name
    ,act
    ,min(startt) startt
    ,max(endd)   endd
    ,min(rn)     min_rn
    ,max(rn)     max_rn
from cte
group by 
    name
    ,act
    ,rn - act_n
order by 
    name
    ,min(rn)
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mencari Nilai permulaan dan tamat Minimum dan Maksimum dalam Subset Berturut-turut Nilai perbuatan yang Sama?. 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