यह त्रुटि सही समझ में आता है। COUNT
एक "कुल" कार्य है। तो आपको यह बताने की आवश्यकता है कि किस क्षेत्र द्वारा एकत्रित किया जाए, जो GROUP BY
के साथ किया जाता है खंड।
जो आपके मामले में शायद सबसे ज्यादा मायने रखता है वह होगा:
SELECT column_a, COUNT(*) FROM my_schema.my_table GROUP BY column_a;
यदि आप केवल COUNT(*)
. का उपयोग करें खंड, आप किसी अन्य शर्त से एकत्रित करने के बजाय पंक्तियों की पूरी संख्या वापस करने के लिए कह रहे हैं। आपकी खोज अगर GROUP BY
. है उस मामले में निहित है, इसका उत्तर दिया जा सकता है:"प्रकार":यदि आप कुछ भी निर्दिष्ट नहीं करते हैं तो यह पूछने जैसा है:"कुछ भी नहीं समूह", जिसका अर्थ है कि आपको एक विशाल कुल मिलेगा, जो पूरी तालिका है।
उदाहरण के तौर पर, क्रियान्वित करना:
SELECT COUNT(*) FROM table;
आपको उस तालिका में पंक्तियों की संख्या दिखाएगा, जबकि:
SELECT col_a, COUNT(*) FROM table GROUP BY col_a;
आपको पंक्तियों की संख्या प्रति दिखाएगा col_a
. का मान . कुछ इस तरह:
col_a | COUNT(*)
---------+----------------
value1 | 100
value2 | 10
value3 | 123
आपको यह भी ध्यान रखना चाहिए कि *
मतलब सब कुछ गिनना . NULL
. सहित एस! यदि आप किसी विशिष्ट शर्त की गणना करना चाहते हैं, तो आपको COUNT(expression)
. का उपयोग करना चाहिए ! एग्रीगेट फ़ंक्शन के बारे में दस्तावेज़
देखें इस विषय पर अधिक जानकारी के लिए।