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

मध्यरात्रि में समय के अनुसार समूहीकृत डेटा चुनें

संपादित करें :अब इसका परीक्षण किया गया है:SQL Fiddle

कुंजी केवल group by . द्वारा समायोजित करने के लिए है ताकि सुबह 6 बजे से पहले की कोई भी चीज़ पिछले दिन के साथ समूहीकृत हो जाए। उसके बाद, गिनती बहुत सीधी होती है।

SELECT TO_CHAR(CASE WHEN EXTRACT(HOUR FROM timevalue) < 6
                    THEN timevalue - 1
                    ELSE timevalue
                    END, 'YYYY\MM\DD') AS day, 
       COUNT(*) AS overall, 
       SUM(CASE WHEN EXTRACT(HOUR FROM timevalue) >= 6 AND EXTRACT(HOUR FROM timevalue) < 14
                THEN 1 ELSE 0 END) AS morning,
       SUM(CASE WHEN EXTRACT(HOUR FROM timevalue) >= 14 AND EXTRACT(HOUR FROM timevalue) < 23
                THEN 1 ELSE 0 END) AS daytime,
       SUM(CASE WHEN EXTRACT(HOUR FROM timevalue) < 6 OR EXTRACT(HOUR FROM timevalue) >= 23
                THEN 1 ELSE 0 END) AS evening
FROM my_table
WHERE timevalue >= TO_TIMESTAMP('05.07.2015','DD.MM.YYYY')
GROUP BY TO_CHAR(CASE WHEN EXTRACT(HOUR FROM timevalue) < 6
                    THEN timevalue - 1
                    ELSE timevalue
                    END, 'YYYY\MM\DD');


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle SQL पूर्ण पदानुक्रम इनपुट के रूप में किसी भी नोड को दिया गया है

  2. Oracle DBMS_STATS.GATHER_TABLE_STATS का उपयोग क्यों करता है?

  3. संयोजन मुद्दे

  4. Oracle के लिए मुफ्त डेस्कटॉप क्लाइंट?

  5. ORA-29977:गारंटी मोड में क्वेरी पंजीकरण के लिए असमर्थित कॉलम प्रकार