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

Raggruppa SQL per intervallo di date

Quindi, vuoi trovare sequenze in base alla data che sono le stesse.

Ecco un trucco:se prendi la differenza tra row_number() sull'intero gruppo e row_number() partizionato per code , quindi sarà costante per le righe adiacenti con lo stesso codice. Il resto è solo aggregazione:

select  min(date), max(date), code
from (select t.*,
             (row_number() over (order by date) -
              row_number() over (partition by code order by date)
             ) as grpid
      from followingdata t
     ) t
group by grpid, code;