sql >> データベース >  >> RDS >> Sqlserver

連続範囲でグループ化するにはどうすればよいですか

    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
    

    この記事はあなたの興味を引くかもしれません:

    • SQLに必要なもの:SERIES()


    1. SQLServerデータベースのスコープ構成と自動プラン修正

    2. SQL Server(T-SQL)にテーブルをドロップする前にテーブルが存在するかどうかを確認する4つの方法

    3. VBAの同じ行で変数を宣言して初期化する

    4. LAST_DAY()がMariaDBでどのように機能するか