需求: 某时间范围内按天分类,统计总数和失败数 SELECT DATE_FORMAT(create_date, '%Y-%m-%d') AS `date`, COUNT(id) AS total, COUNT(type=1 OR NULL) AS failTotal FROM table_name WHERE test_date BETWEEN #{startDate} AND #{endDate} GROUP BY `date` 注意 count(条件表达式 OR NULL), 一定要加上 OR NULL, 否则该字段都会被统计