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

trả về số 0 với nhóm mysql bởi

GROUP BY cần các hàng để làm việc, vì vậy nếu bạn không có hàng nào cho một danh mục nhất định, bạn sẽ không nhận được số lượng. Hãy coi mệnh đề where giống như việc giới hạn các hàng nguồn trước khi chúng được nhóm lại với nhau. Mệnh đề where không cung cấp danh sách các danh mục để nhóm theo.

Những gì bạn có thể làm là viết một truy vấn để chọn các danh mục (vùng ngoại ô) sau đó thực hiện đếm trong một truy vấn con. (Tôi không chắc hỗ trợ của MySQL cho việc này như thế nào)

Một cái gì đó như:

SELECT 
  s.suburb_id,
  (select count(*) from suburb_data d where d.suburb_id = s.suburb_id) as total
FROM
  suburb_table s
WHERE
  s.suburb_id in (1,2,3,4)

(MSSQL, xin lỗi)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL CẬP NHẬT có điều kiện các giá trị cột boolean của các hàng dựa trên danh sách trắng các id

  2. MySQL:lấy TỐI ĐA hoặc TUYỆT VỜI nhất của một số cột, nhưng với các trường NULL

  3. Cách xóa các chữ số khỏi cuối chuỗi bằng SQL

  4. Bảng Laravel Migration đã tồn tại, nhưng tôi muốn thêm mới chứ không phải cũ hơn

  5. Không thể thêm hoặc cập nhật hàng con:ràng buộc khóa ngoại không thành công