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

एक महीने में हर दिन के लिए मूल्य कैसे प्राप्त करें

एसक्यूएल में ऐसा करना वास्तव में आश्चर्यजनक रूप से कठिन है। ऐसा करने का एक तरीका यह है कि 1 से 31 तक संख्याएं उत्पन्न करने के लिए यूनियन ऑल के साथ एक लंबा चयन कथन होना चाहिए। यह सिद्धांत को प्रदर्शित करता है लेकिन मैं स्पष्टता के लिए 4 पर रुक गया:

SELECT MonthDate.Date, COALESCE(SUM(`values`), 0) AS Total
FROM (
    SELECT 1 AS Date UNION ALL
    SELECT 2 UNION ALL
    SELECT 3 UNION ALL
    SELECT 4 UNION ALL
    --
    SELECT 28 UNION ALL
    SELECT 29 UNION ALL
    SELECT 30 UNION ALL
    SELECT 31) AS MonthDate
LEFT JOIN Table1 AS T1
ON MonthDate.Date = DAY(T1.Date)
AND MONTH(T1.Date) = 1 AND YEAR(T1.Date) = 2010
WHERE MonthDate.Date <= DAY(LAST_DAY('2010-01-01'))
GROUP BY MonthDate.Date

इन मानों को संग्रहीत करने और इसके बजाय इसके साथ जुड़ने के लिए तालिका का उपयोग करना बेहतर हो सकता है।

परिणाम:

1, 34
2, 10
3, 0
4, 7


  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. ग्रुप बाय - न्यूल को ग्रुप न करें

  3. मैसकल विज़ुअलाइज़ेशन टूल्स

  4. mysqli - गैर-ऑब्जेक्ट mysqli पर एक सदस्य फ़ंक्शन fetch_array () के लिए fetch_Array त्रुटि कॉल

  5. MySQL प्रदर्शन बेंचमार्किंग:MySQL 5.7 बनाम MySQL 8.0