sql >> Databáze >  >> RDS >> Sqlserver

Jak získat data seskupení záznamů po dobu 3 dnů v SQL?

Zde je mé navrhované řešení:

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;

Cílem je vytvořit skupiny po 5 dnech a poté přiřadit záznam ke konkrétní skupině na základě rozdělení s 5. NoDays představuje dny strávené od MinDate do Flight_Date.



  1. MySQL/PHP foreach se stále zobrazuje pouze jako první v databázi

  2. Nelze získat sql server compact 3.5 / 4 pro práci s ASP .NET MVC 2

  3. Replikace databáze nebo zrcadlení?

  4. Room API - Jak získat nedávno vložené vygenerované ID entity?