sql >> Databáze >  >> RDS >> Oracle

Zvyšte číslo řádku ve skupině s opakovanými skupinami

K definování skupin můžete použít rozdíl čísel řádků:

select Shade, count(*) as amount
from (select t.*,
             row_number() over (order by level) as seqnum,
             row_number() over (partition by shade order by level) as seqnum_s
      from t
     ) t
group by Shade, (seqnum - seqnum_s);

Je trochu těžké vysvětlit, proč to funguje. Když se podíváte na výsledky dílčího dotazu, je zřejmé, proč je rozdíl mezi dvěma row_number() hodnoty identifikují sekvenční skupiny.




  1. Rozdíl dvou dat a času na serveru SQL

  2. Jak přihlásit nového uživatele k odběru upozornění?

  3. Kde si mohu stáhnout mysql jdbc jar?

  4. PHP převést z MySql do tabulky Excel Autosize sloupců