sql >> Database teknologi >  >> RDS >> Oracle

Oracle - Konverter værdi fra rækker til områder

Jeg føler, at dette nok kan forbedres, men det virker:

WITH base AS ( SELECT 1 N FROM DUAL UNION ALL SELECT 2 N FROM DUAL UNION ALL SELECT 3 N FROM DUAL UNION ALL SELECT 6 N FROM DUAL UNION ALL SELECT 7 N FROM DUAL UNION ALL SELECT 17 N FROM DUAL UNION ALL SELECT 18 N FROM DUAL UNION ALL SELECT 19 N FROM DUAL UNION ALL SELECT 21 N FROM DUAL ) , lagged AS ( SELECT n, LAG(n) OVER (ORDER BY n) lag_n FROM base ) , groups AS ( SELECT n, row_number() OVER (ORDER BY n) groupnum FROM lagged WHERE lag_n IS NULL OR lag_n < n-1 ) , grouped AS ( SELECT n, (SELECT MAX(groupnum) FROM groups WHERE groups.n <= base.n ) groupnum FROM base ) SELECT groupnum, MIN(n), MAX(n) FROM grouped GROUP BY groupnum ORDER BY groupnum

  1. Er der forskel på SQL Server Express (2012) og LocalDB?

  2. Operator findes ikke:heltal =heltal[] i en forespørgsel med ANY

  3. PHP PDO - Der er ingen aktiv transaktion

  4. Sådan installeres SQLite og SQLite Browser i Ubuntu