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
236 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!

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