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

Hvordan får man postgrupperingsdatoer for en periode på 3 dage i SQL?

Her er mit forslag til løsning:

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;

Ideen er at danne grupper på 5 dage og derefter knytte en post til en specifik gruppe baseret på division med 5. NoDays repræsenterer de dage brugt fra MinDate til Flight_Date.



  1. Hvordan gemmer man en række bytes i Oracle?

  2. Decimal datatype er afrunding af værdierne

  3. Udtræk værdi fra xml clob med Namespace ved hjælp af Oracle pl/sql

  4. Mysql ændre standard tabeltegnsæt til databasetegnsæt