sql >> Database teknologi >  >> RDS >> Sqlserver

Hvordan grupperer jeg på kontinuerlige områder

WITH    q AS
        (
        SELECT  *,
                ROW_NUMBER() OVER (PARTITION BY crew, dayType ORDER BY [date]) AS rnd,
                ROW_NUMBER() OVER (PARTITION BY crew ORDER BY [date]) AS rn
        FROM    mytable
        )
SELECT  MIN([date]), MAX([date]), crew AS name, dayType
FROM    q
GROUP BY
        crew, dayType, rnd - rn

Denne artikel kan være interessant for dig:

  • Ting SQL har brug for:SERIES()


  1. Hvordan fjerner man alle ikke-alfanumeriske tegn fra en streng i MySQL?

  2. PostgreSQL - forespørgsel fra bash script som databasebruger 'postgres'

  3. Kan du lide Operator in Entity Framework?

  4. Sådan opretter du bruger i Oracle Multitenant 12c uden C## præfiks