Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Jumlah dan pengelompokan tipe data mysql json

Pertama Anda menyimpan semua JSON dalam satu baris, jika Anda ingin menanyakan data seperti ini, setiap penduduk harus memiliki baris JSON-nya sendiri:

*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"}

Kedua Anda tidak perlu menghitung data yang diekstraksi, Anda hanya perlu menghitung baris untuk setiap negara yang diekstraksi. Ini akan berhasil:

SELECT JSON_EXTRACT(data, "$.F") AS country,
       COUNT(*) AS num_residents

Ketiga, Anda tidak ingin GROUP BY data sama sekali karena ini mungkin unik per penduduk. Ini akan membuat Anda memiliki grup untuk setiap baris. Saya pikir Anda hanya ingin:

GROUP BY country

Menyatukan semuanya:

  SELECT JSON_EXTRACT(data, "$.F") AS country,
         COUNT(*) AS num_residents
    FROM kpi_data
   WHERE schema_id = 39
GROUP BY country

Untuk kinerja yang layak, Anda dapat mempertimbangkan untuk menempatkan indeks sekunder di negara yang diekstrak.. lihat 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. String ilegal offset 'nama' laravel

  2. Pemicu Kebakaran MySQL untuk Sisipan dan Pembaruan

  3. Bagaimana cara terhubung dengan MySQL DB yang berjalan sebagai wadah di buruh pelabuhan?

  4. Klien baris perintah MySQL untuk Windows

  5. Ubah format output untuk hasil baris perintah MySQL ke CSV