COUNT()
एक एग्रीगेशन फंक्शन है जिसे आमतौर पर GROUP BY
. के साथ जोड़ा जाता है खंड।
curdate()
एक दिनांक फ़ंक्शन है जो वर्तमान दिनांक को आउटपुट करता है।
केवल MySQL (जहाँ तक मुझे पता है) GROUP BY
. का उपयोग किए बिना इस सिंटैक्स की अनुमति देता है खंड। चूंकि आपने इसे प्रदान नहीं किया था, COUNT(*)
तालिका में पंक्तियों की कुल मात्रा और owner
. की गणना करेगा कॉलम यादृच्छिक रूप से/अनुकूलक डिफ़ॉल्ट/अनुक्रमणिका द्वारा चुना जाएगा।
यह आपकी क्वेरी होनी चाहिए:
select owner, count(*)
from pet
group by owner;
जो ऑप्टिमाइज़र को प्रत्येक . के लिए कुल पंक्तियों की गणना करने के लिए कहता है मालिक।
जब किसी समूह द्वारा खंड का उल्लेख नहीं किया जाता है - तालिका के संपूर्ण डेटा पर एकत्रीकरण कार्य लागू होते हैं।
संपादित करें: प्रत्येक पंक्ति पर लागू की जाने वाली गणना सामान्यतः COUNT()
. के साथ नहीं की जा सकती और आमतौर पर एक विश्लेषणात्मक कार्य के साथ प्रयोग किया जाता है -> COUNT() OVER(PARTITION...)
जो दुर्भाग्य से MySQL में मौजूद नहीं है। आपका दूसरा विकल्प JOIN/CORRELATED QUERY
. बनाना है इस अतिरिक्त कॉलम के लिए।
एक और संपादन: यदि आप प्रत्येक स्वामी के आगे कुल गणना करना चाहते हैं, तो आप एक उप क्वेरी का उपयोग कर सकते हैं:
SELECT owner,
(SELECT COUNT(*) FROM pet) as cnt
FROM pet