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

Sloučení dat do jediné SQL tabulky bez kurzoru

Klíčovým pozorováním je, že posloupnost čísel mínus další posloupnost je konstanta. Další sekvenci můžeme vygenerovat pomocí row_number . Toto identifikuje všechny skupiny:

select id, MIN(number) as low, MAX(number) as high
from (select t.*,
             (number - ROW_NUMBER() over (partition by id order by number) ) as groupnum
      from t
     ) t
group by id, groupnum

Zbytek je jen agregace.



  1. Jak zdravý je váš SQL Server? Proaktivní monitorování databáze je kritické

  2. MySQL – kombinace INSERT, VALUES a SELECT?

  3. Oracle:tabulka mutuje

  4. Indexační sloupec s funkcí REPLACE v mySQL