MySQL将字段计为两个不同的计数结果

时间:2015-01-09 07:26:26

标签: mysql sql select count group-by

我试图根据其价值计算出现的驾驶员出勤率。 这是我的代码。

SELECT *, COUNT(attendance_status) AS total_cars_dispatched
FROM driver_attendance da 
LEFT JOIN collectible co ON (da.driver_attendance_id=co.driver_attendance_id)
LEFT JOIN driver_pondo dp ON (dp.collectible_id=co.collectible_id)
WHERE attendance_status=19 AND company_id=84 GROUP BY attendance_date DESC

我想知道如果使用单个查询,当其值为4时,如何使用另一个COUNT的attendance_status。

1 个答案:

答案 0 :(得分:2)

试试这个:

SELECT attendance_date, 
       SUM(CASE WHEN attendance_status = 19 THEN 1 ELSE 0 END) AS total_cars_dispatched, 
       SUM(CASE WHEN attendance_status = 4 THEN 1 ELSE 0 END) AS attendance_status_4
FROM driver_attendance da 
LEFT JOIN collectible co ON da.driver_attendance_id=co.driver_attendance_id
LEFT JOIN driver_pondo dp ON dp.collectible_id=co.collectible_id
WHERE company_id=84 
GROUP BY attendance_date DESC;