sql >> Databasteknik >  >> RDS >> PostgreSQL

Fönsterfunktioner och mer lokal aggregering

Detta returnerar ditt önskade resultat med provdata. Inte säker på om det kommer att fungera för verkliga data:

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;

Jag utelämnade DISTINCT dock.



  1. JSON-funktioner är nu aktiverade som standard i SQLite

  2. SQL SELECT-syntax – listad av DBMS

  3. Docker PGMASTER PostgreSQL versionsuppdatering

  4. MySQL TRUNCATE() Funktion – Trunkera ett tal till ett specificerat antal decimaler