Sử dụng nhiều Count trong cùng câu query

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

Group by, having, where, v.v.

1 Like

Là đếm hay tính tổng :no_mouth:

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?