Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Liczba typów danych json Mysql i groupby

Po pierwsze, przechowujesz wszystkie JSON w jednym wierszu, jeśli chcesz zapytać o dane w ten sposób, każdy mieszkaniec powinien mieć swój własny wiersz swojego własnego 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"}

Po drugie, nie musisz liczyć wyodrębnionych danych, wystarczy policzyć wiersze dla każdego wyodrębnionego kraju. To wystarczy:

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

Po trzecie, nie chcesz GROUP BY data w ogóle, ponieważ przypuszczalnie jest to wyjątkowe na mieszkańca. W ten sposób zostaniesz z grupą dla każdego rzędu. Myślę, że chcesz po prostu:

GROUP BY country

Podsumowując:

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

Aby uzyskać przyzwoitą wydajność, możesz rozważyć umieszczenie dodatkowego indeksu w wyodrębnionym kraju. Zobacz 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. Wyzwalacz Mysql do aktualizacji wstawionego wiersza

  2. kreator quizów wielokrotnego wyboru php

  3. zapytanie subselect sql nie działa na mysql 4

  4. AKTUALIZUJ wiele tabel w MySQL za pomocą LEFT JOIN

  5. Dlaczego MySQL podaje błąd Nie wolno zwracać zestawu wyników z funkcji?