Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Scalanie danych w jednej tabeli SQL bez kursora

Kluczową obserwacją jest to, że ciąg liczb minus inny ciąg jest stałą. Możemy wygenerować kolejną sekwencję za pomocą row_number . To identyfikuje wszystkie grupy:

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

Reszta to tylko agregacja.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Najpierw zamów według określonego identyfikatora, a następnie według odpoczynku

  2. Jak zmienić znaki podziału wyrazów w indeksowaniu pełnotekstowym programu SQL Server

  3. Co to jest typ oczekiwania PAGEIOLATCH_SH w programie SQL Server?

  4. Jak wykonać to zapytanie SQL przy użyciu ADO.NET?

  5. Jak połączyć się z bazą danych SQL Server przez PHP?