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

डेटा मौजूद न होने पर भी मैसकल महीने-वार रिकॉर्ड का चयन करेगा

मैं दक्षता के बारे में ज्यादा कुछ नहीं कहूंगा क्योंकि मैंने इसे अन्य तरीकों के खिलाफ परीक्षण नहीं किया है, लेकिन एक अस्थायी तालिका के बिना यह जाने का एक उचित तरीका प्रतीत होता है।

   SELECT COUNT(u.userID) AS total, m.month
     FROM (
           SELECT 'Jan' AS MONTH
           UNION SELECT 'Feb' AS MONTH
           UNION SELECT 'Mar' AS MONTH
           UNION SELECT 'Apr' AS MONTH
           UNION SELECT 'May' AS MONTH
           UNION SELECT 'Jun' AS MONTH
           UNION SELECT 'Jul' AS MONTH
           UNION SELECT 'Aug' AS MONTH
           UNION SELECT 'Sep' AS MONTH
           UNION SELECT 'Oct' AS MONTH
           UNION SELECT 'Nov' AS MONTH
           UNION SELECT 'Dec' AS MONTH
          ) AS m
LEFT JOIN users u 
ON MONTH(STR_TO_DATE(CONCAT(m.month, ' 2013'),'%M %Y')) = MONTH(u.userRegistredDate)
   AND YEAR(u.userRegistredDate) = '2013'
GROUP BY m.month
ORDER BY 1+1;

यदि आप एक तिथि प्रारूप के आधार पर संघ बनाते हैं तो आप काम को कम भी कर सकते हैं और क्वेरी पर लोड कर सकते हैं।

   SELECT COUNT(u.userID) AS total, DATE_FORMAT(merge_date,'%b') AS month, YEAR(m.merge_date) AS year
     FROM (
           SELECT '2013-01-01' AS merge_date
           UNION SELECT '2013-02-01' AS merge_date
           UNION SELECT '2013-03-01' AS merge_date
           UNION SELECT '2013-04-01' AS merge_date
           UNION SELECT '2013-05-01' AS merge_date
           UNION SELECT '2013-06-01' AS merge_date
           UNION SELECT '2013-07-01' AS merge_date
           UNION SELECT '2013-08-01' AS merge_date
           UNION SELECT '2013-09-01' AS merge_date
           UNION SELECT '2013-10-01' AS merge_date
           UNION SELECT '2013-11-01' AS merge_date
           UNION SELECT '2013-12-01' AS merge_date
          ) AS m
LEFT JOIN users u 
       ON MONTH(m.merge_date) = MONTH(u.userRegistredDate)
          AND YEAR(m.merge_date) = YEAR(u.userRegistredDate)
GROUP BY m.merge_date
ORDER BY 1+1;

दोनों प्रश्नों का लाइव डेमो।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. त्रुटि 1396 (HY000):'जैक' @ 'लोकलहोस्ट' के लिए ऑपरेशन क्रिएट यूजर विफल

  2. MySQL में स्लैश (\) की खोज कैसे करें? और जहां (=) के लिए भागना (\) आवश्यक नहीं है, लेकिन लाइक के लिए क्यों आवश्यक है?

  3. उत्पाद समीक्षा - MySQL के लिए तारकीय मरम्मत

  4. MySQL ASIN () फ़ंक्शन - किसी संख्या का आर्क साइन लौटाएं

  5. JSON MySQL परिणामों को सांकेतिक शब्दों में बदलना