sql >> Databáze >  >> RDS >> PostgreSQL

Skupina SQL podle časového období

Takže chcete najít sekvence podle data, které jsou stejné.

Zde je trik:pokud vezmete rozdíl mezi row_number() přes celou skupinu a row_number() rozděleno podle code , pak bude konstantní pro sousední řádky se stejným kódem. Zbytek je jen agregace:

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;



  1. Nejrychlejší způsob, jak najít zastaralé funkce, které se stále používají v instanci SQL Server (příklad T-SQL)

  2. Jak získat data pro každou hodinu v MySQL

  3. Klauzule OVER v Oracle

  4. Jak zkontrolovat, zda pole PostgreSQL obsahuje hodnotu