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

Mysql json डेटाटाइप काउंट और ग्रुपबाय

सबसे पहले आप सभी 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




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JPA/EclipseLink का उपयोग करके कैस्केड कैसे बने रहें?

  2. मैं कैसे जांच सकता हूं कि MySQL और टॉमकैट चल रहे हैं या नहीं?

  3. MySQL:मूल्य प्राथमिकताओं द्वारा कॉलम प्राप्त करना

  4. MySQL को दो उपयोगकर्ताओं के बीच बातचीत मिलती है

  5. समय अंतर खोजने के लिए MySQL समूह पंक्तियाँ