PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Regrouper SQL par plage de dates

Donc, vous voulez trouver des séquences en fonction de la date qui sont identiques.

Voici une astuce :si vous faites la différence entre row_number() sur tout le groupe et row_number() partitionné par code , alors il sera constant pour les lignes adjacentes avec le même code. Le reste n'est que de l'agrégation :

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;