PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Grupo SQL por intervalo de datas


Então, você quer encontrar sequências de acordo com a data que são as mesmas.

Aqui está um truque:se você pegar a diferença entre row_number() sobre todo o grupo e row_number() particionado por code , então será constante para linhas adjacentes com o mesmo código. O resto é apenas agregação:
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;