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

SQLで3日間の日付をグループ化したレコードを取得するには?

    これが私の提案する解決策です:

    DECLARE @MinDate AS DATETIME = (SELECT MIN(flight_date) FROM flights);
    
    WITH cte
    AS
    (
        SELECT
            flight_date, DATEDIFF(DAY, @MinDate, flight_date) AS NoDays,
            DATEDIFF(DAY, @MinDate, flight_date)/5 AS NoGroup,
            DPT
        FROM flights
    )
    SELECT  
        DATEADD(DAY, NoGroup*5, @MinDate) AS [Week Start],
        DATEADD(DAY, NoGroup*5+4, @MinDate) AS [Weed End],  
        SUM(DPT)
    FROM cte
    GROUP BY NoGroup;
    

    アイデアは、5 日間のグループを形成し、次に 5 の分割に基づいてレコードを特定のグループに関連付けることです。NoDays は、MinDate から Flight_Date までの日数を表します。



    1. sqlplusでエラーを表示する方法

    2. PHPを使用してMySQLデータベースをバックアップ/エクスポートする方法

    3. MYSQL SUM GROUP BY

    4. 定義者のロール権限を使用して、PL/SQLプロシージャで動的DDLを実行します