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

दिन के हिसाब से समूह बनाएं और फिर भी पंक्तियों के बिना दिन दिखाएं?

MySQL आपके लिए पंक्तियों का आविष्कार नहीं करेगा, इसलिए यदि डेटा नहीं है, तो वे स्वाभाविक रूप से नहीं दिखाए जाएंगे।

आप एक कैलेंडर तालिका बना सकते हैं, और उसमें शामिल हो सकते हैं,

create table calendar (
    day date primary key,
);

इस तालिका को दिनांकों के साथ भरें (एक संग्रहीत प्रक्रिया के साथ आसान, या बस कुछ सामान्य स्क्रिप्टिंग), लगभग 2038 तक और कुछ और संभावित रूप से इकाई को तोड़ देगा जो एक समस्या बन जाती है।

तब आपकी क्वेरी उदा.

. बन जाती है
SELECT logTime, COUNT(*) 
  FROM calendar cal left join logs l on cal.day = l.logTime 
WHERE day >= '2011-02-01' AND day <= '2011-02-04' GROUP BY day;

अब, आप कैलेंडर तालिका को अन्य कॉलम के साथ बढ़ा सकते हैं जो आपको महीना, वर्ष, सप्ताह आदि बताता है ताकि आप अन्य समय इकाइयों के लिए आसानी से आंकड़े तैयार कर सकें। (और शुद्धतावादी तर्क दे सकते हैं कि कैलेंडर तालिका में एक आईडी पूर्णांक प्राथमिक कुंजी होगी जो कि दिनांक के बजाय लॉग तालिका का संदर्भ देती है)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ऑटो वृद्धिशील प्राथमिक कुंजी वाले MySQL में डेटा कैसे सम्मिलित करें?

  2. MySQL क्वेरी में टेक्स्ट को नंबर में बदलें

  3. तालिका कॉलम में शब्द घटनाओं की गणना करना

  4. ONLY_FULL_GROUP_BY को अक्षम क्यों नहीं करना चाहिए

  5. MySql PHP अल्पविराम से अलग किए गए डेटा (टैग) से अलग-अलग मानों की गिनती का चयन करता है