Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Bagaimana cara mendapatkan tanggal pengelompokan catatan untuk rentang 3 hari dalam SQL?

Ini dia solusi yang saya usulkan:

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;

Idenya adalah untuk membentuk grup yang terdiri dari 5 hari, lalu mengaitkan catatan ke grup tertentu berdasarkan pembagian dengan 5. NoDays mewakili hari yang dihabiskan dari MinDate hingga Flight_Date.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Haruskah izin KONTROL diberikan pada Prosedur Tersimpan di SQL Server 2005?

  2. Bagaimana cara menghapus semua karakter non-abjad dari string di SQL Server?

  3. SQL:Normalisasi database sambil mempertahankan batasan

  4. Bagaimana cara mengubah format tanggal sistem ke dd/mm/yy di SQL Server 2008 R2?

  5. Windows Azure SQL Database - kolom peningkatan Identitas Otomatis melewatkan nilai