Hier is mijn voorgestelde oplossing:
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;
Het idee is om groepen van 5 dagen te vormen en vervolgens een record te koppelen aan een specifieke groep op basis van een verdeling met 5. NoDays staat voor de dagen die zijn doorgebracht van MinDate tot Flight_Date.