sql >> Database teknologi >  >> RDS >> PostgreSQL

Vinduesfunktioner og mere lokal aggregering

Dette returnerer det ønskede resultat med prøvedataene. Ikke sikker på, om det vil fungere for data fra den virkelige verden:

select k, 
       min(v) over (partition by group_nr) as min_v,
       max(v) over (partition by group_nr) as max_v
from (
    select *,
           sum(group_flag) over (order by v,k) as group_nr
    from (
    select *,
           case
              when lag(k) over (order by v) = k then null
              else 1
            end as group_flag
    from window_test
    ) t1
) t2
order by min_v;

Jeg har udeladt DISTINCT dog.



  1. Sådan aktiverer du massetilladelse i SQL Server

  2. Hvordan kan jeg se forespørgsler, der udføres mod Oracle?

  3. Installation af Oracle 12c Standard Edition på Windows 10 Professional

  4. Hvordan får man medarbejderne med deres ledere