Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Số lượng kiểu dữ liệu Mysql json và theo nhóm

Đầu tiên, bạn đang lưu trữ tất cả JSON trong một hàng, nếu bạn muốn truy vấn dữ liệu như thế này, mỗi cư dân nên có hàng riêng JSON của riêng mình:

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

Thứ hai, bạn không cần phải đếm dữ liệu được trích xuất, bạn chỉ cần đếm các hàng cho mỗi quốc gia được trích xuất. Điều này sẽ thực hiện:

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

Thứ ba, bạn không muốn GROUP BY data vì điều này có lẽ là duy nhất cho mỗi cư dân. Điều này sẽ để lại cho bạn một nhóm cho mỗi hàng. Tôi nghĩ bạn chỉ muốn:

GROUP BY country

Kết hợp tất cả lại với nhau:

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

Để có hiệu suất tốt, bạn có thể cân nhắc đặt chỉ mục phụ trên quốc gia được trích xuất .. xem 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. Tìm kiếm mảng Php / MySql với, š, é, ë, ú, ü, í, ž

  2. Truy vấn SQL trả về Toán hạng phải chứa 1 (các) cột

  3. Cách tính giá trị trung bình trong MySQL

  4. Khắc phục sự cố Không có tệp hoặc thư mục như vậy khi chạy `php app / console theory:schema:create`

  5. Làm cách nào để thêm AUTO_INCREMENT vào cột hiện có?