Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

एसक्यूएल में 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर - अगले मिनट के लिए राउंड टाइम मान

  2. बीसीपी/बल्क इंसर्ट बनाम टेबल-वैल्यूड पैरामीटर्स का प्रदर्शन

  3. DBNull's से निपटने का सबसे अच्छा तरीका क्या है?

  4. अगर मैं कोई दृश्य अपडेट करता हूं, तो क्या मेरी मूल तालिकाएं अपडेट हो जाएंगी?

  5. SQL सर्वर पर हमेशा उपलब्धता समूहों को कॉन्फ़िगर करना