sql >> Databáze >  >> RDS >> Sqlserver

Najděte min a max pro podmnožiny po sobě jdoucích řádků – mezery a ostrůvky

Chcete najít po sobě jdoucí skupiny podobných řádků a poté agregaci. Líbí se mi rozdíl v přístupu k číslům řádků:

select name, act, min(startt) as startt, max(endd) as endd
from (select i.*,
             row_number() over (partition by name, act order by rn) as seqnum_na,
             row_number() over (partition by name order by rn) as seqnum_n
      from input i
     ) i
group by (seqnum_n - seqnum_na), name, act;

Jak to funguje, můžete vidět, když se podíváte na to, co dělá dílčí dotaz.



  1. Oracle pl-sql escape znak (pro ' )

  2. Jak změním typ sloupce v Heroku?

  3. Uložte změny do databáze vaadin

  4. Grails:mapujte pole mysql typu enum na třídu domény