यह क्वेरी सभी पंक्तियों की गणना करेगी, और केवल उन पंक्तियों की भी गणना करेगी जहां Attribute
शून्य नहीं है, वर्ष और महीने के अनुसार पंक्तियों में समूहित करना:
SELECT
Year(`date`),
Month(`date`),
Count(*) As Total_Rows,
Count(`Attribute`) As Rows_With_Attribute
FROM your_table
GROUP BY Year(`date`), Month(`date`)
(ऐसा इसलिए है क्योंकि काउंट (*) सभी पंक्तियों को गिनता है, काउंट (एटिब्यूट) उन सभी पंक्तियों को गिनता है जहाँ विशेषता शून्य नहीं है)
यदि आपको PIVOT में अपनी तालिका की आवश्यकता है, तो आप इसका उपयोग केवल उन पंक्तियों को गिनने के लिए कर सकते हैं जहां विशेषता शून्य नहीं है:
SELECT
Year(`date`),
Count(case when month(`date`)=1 then `Attribute` end) As Jan,
Count(case when month(`date`)=2 then `Attribute` end) As Feb,
Count(case when month(`date`)=3 then `Attribute` end) As Mar,
...
FROM your_table
GROUP BY Year(`date`)
और यह सभी पंक्तियों को गिनने के लिए:
SELECT
Year(`date`),
Count(case when month(`date`)=1 then id end) As Jan,
Count(case when month(`date`)=2 then id end) As Feb,
Count(case when month(`date`)=3 then id end) As Mar,
...
FROM your_table
GROUP BY Year(`date`)
(या, आईडी गिनने के बजाय, आप Sum(Month(
.) का उपयोग कर सकते हैं दिनांक)=1)
जैसे कंदर के उत्तर में)। बेशक आप दोनों प्रश्नों को इसमें जोड़ सकते हैं:
SELECT
Year(`date`),
Count(case when month(`date`)=1 then id end) As Jan_Tot,
Count(case when month(`date`)=1 then `Attribute` end) As Jan_Attr,
Count(case when month(`date`)=2 then id end) As Feb_Tot,
Count(case when month(`date`)=2 then `Attribute` end) As Feb_Attr,
Count(case when month(`date`)=3 then id end) As Mar_Tot,
Count(case when month(`date`)=3 then `Attribute` end) As Mar_Attr,
...
FROM your_table
GROUP BY Year(`date`)