MySQL将一个字段统计成两个不同的统计结果

标签 mysql sql select count group-by

我正在尝试根据司机的 attend_status 值来计算它。 这是我目前的代码。

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

我想知道如何使用单个查询在 attend_status 的值为 4 时对其进行另一个计数。

最佳答案

试试这个:

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;

关于MySQL将一个字段统计成两个不同的统计结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27855745/

相关文章:

mysql - SQL 子查询按列值获取行

mysql - ER_PARSE_ERROR : You have an error in your SQL syntax - Node JS

mysql - 如何选择给定数据出现在表中多行的行?

sql - 我需要在 case 表达式中使用 else 子句吗?

html - 使用 CSS 自定义 HTML <select>

mysql - Bootstrap 错误 3 : modal and $_GET my ID

mysql - Hibernate 不会在不同的操作系统下加载某些表

mysql - 如何计算mysql的24小时时间?

Mysql 左连接查询不显示正确的值

sql - TSQL : How to Join/Combine rows of a single column into a CSV list