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

MySQL में दिनांक अंतराल कैसे भरें?

आपको एक सहायक तालिका बनानी होगी और इसे start . से सभी तिथियों से भरना होगा end . तक , तो बस LEFT JOIN उस तालिका के साथ:

SELECT  d.dt AS date,
        COUNT(*) AS total,
        SUM(attitude = 'positive') AS positive,
        SUM(attitude = 'neutral') AS neutral,
        SUM(attitude = 'negative') AS negative
FROM    dates d
LEFT JOIN
        messages m
ON      m.posted_at >= d.dt
        AND m.posted_at < d.dt + INTERVAL 1 DAYS
        AND spam = 0
        AND duplicate = 0
        AND ignore = 0
GROUP BY
        d.dt
ORDER BY
        d.dt

मूल रूप से, आपको यहां एक डमी पंक्ति स्रोत की आवश्यकता है।

MySQL एकमात्र प्रमुख प्रणाली है जिसके पास इसे उत्पन्न करने का कोई तरीका नहीं है।

PostgreSQL एक विशेष कार्य लागू करता है generate_series ऐसा करने के लिए, जबकि Oracle और SQL Server रिकर्सन का उपयोग कर सकते हैं (CONNECT BY और पुनरावर्ती CTE एस, तदनुसार)।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. जावा अपवाद त्रुटि - स्क्लाइट तैयारस्टेटमेंट.सेटब्लॉब

  2. चुनें * लिंक किए गए MySQL सर्वर से

  3. एक MySQL डेटाबेस में ट्रिगर के साथ कार्य करना - एक ट्यूटोरियल

  4. यदि मौजूद है तो तालिका बदलें या यदि नहीं है तो बनाएं

  5. MyIsam इंजन लेनदेन समर्थन