Em có table Apartment có IDapartment,idBuIlding,status.
Làm sao để đếm tổng mỗi loại status apartmrnt của cùng iđBuiling ạ
AI giúp em với
Sử dụng nhiều Count trong cùng câu query
Group by, having, where, v.v.
1 Like
Là đếm hay tính tổng 
Google “mysql multiple counts from same table” là có đầy kết quả, nhưng thường là multiple statements. Nếu lúc nào đó bạn sử dụng prepared statement như PDO, chỉ cho phép one statement thì tham khảo code dưới đây:
Đếm
COUNT(IF(status="A",1,NULL)) AS statusA,
COUNT(IF(status="B",1,NULL)) AS statusB
Tính tổng (ví dụ price)
COALESCE(SUM(IF(status="A",price,NULL)),0) AS priceA,
COALESCE(SUM(IF(status="B",price,NULL)),0) AS priceB
Dọn cơm
SELECT BuIlding.id, COUNT(IF(Apartment.status="A",1,NULL)) AS statusA, COUNT(IF(Apartment.status="B",1,NULL)) AS statusB
FROM Apartment, BuIlding
WHERE Apartment.idBuIlding = BuIlding.id
GROUP BY BuIlding.id
3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?