सबसे पहले आप सभी JSON को एक पंक्ति में संग्रहीत कर रहे हैं, यदि आप इस तरह के डेटा को क्वेरी करना चाहते हैं तो प्रत्येक निवासी के पास अपने स्वयं के JSON की अपनी पंक्ति होनी चाहिए:
*other_fields*, {"A": 1, "B": "Debra", "C": "Peters", "D": "[email protected]", "E": "Female", "F": "Tsagaan-Ovoo"}
*other_fields*, {"A": 2, "B": "Marc", "C": "Rasmussen", "D": "[email protected]", "E": "Male", "F": "Copenhagen"}
दूसरे आपको निकाले गए डेटा की गणना करने की आवश्यकता नहीं है, आपको केवल निकाले गए प्रत्येक देश के लिए पंक्तियों की गणना करने की आवश्यकता है। यह करेगा:
SELECT JSON_EXTRACT(data, "$.F") AS country,
COUNT(*) AS num_residents
तीसरा, आप GROUP BY data
नहीं करना चाहते हैं बिल्कुल भी क्योंकि यह संभवतः प्रति निवासी अद्वितीय है। यह आपको प्रत्येक पंक्ति के लिए एक समूह के साथ छोड़ देगा। मुझे लगता है कि आप बस चाहते हैं:
GROUP BY country
यह सब एक साथ रखना:
SELECT JSON_EXTRACT(data, "$.F") AS country,
COUNT(*) AS num_residents
FROM kpi_data
WHERE schema_id = 39
GROUP BY country
अच्छे प्रदर्शन के लिए, आप निकाले गए देश पर एक सेकेंडरी इंडेक्स रखने पर विचार कर सकते हैं.. देखें DOCS