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

COUNT () तालिका की केवल एक पंक्ति क्यों दिखाता है?

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


  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. Amazon DynamoDB - दोस्ती के आधार पर टेबल डिजाइन करना

  5. MySQL बड़े डेटाबेस से डुप्लिकेट को जल्दी से हटा देता है