mysql case when count
时间: 2023-10-21 18:29:26 浏览: 174
根据引用和引用的内容,MySQL的CASE WHEN语句可以用于根据条件来统计数据。具体地说,在数据库中,可以使用CASE WHEN来对某个条件进行判断,并根据条件的成立与否返回相应的字段信息。引用提供了一个示例,展示了如何使用CASE WHEN统计刷脸签到总数、系统代签总数以及每天的总签到数。
例如,在上课记录表中,可以使用以下SQL语句来实现这个统计:
SELECT create_time, COUNT(1) total_count, -- 上课总签到数
SUM(CASE WHEN sign_type = 2 THEN 1 ELSE 0 END) face_count, -- 刷脸签到数
SUM(CASE WHEN sign_type = 1 THEN 1 ELSE 0 END) work_count -- 系统代签总数
FROM course_record
WHERE create_time >= '2022-08-24'
GROUP BY DATE_FORMAT(create_time, '%Y-%m-%d')
这个SQL语句会根据create_time字段进行分组,并统计每天的上课总签到数、刷脸签到数以及系统代签总数。其中,CASE WHEN语句根据sign_type字段的值进行判断,当sign_type等于2时,表示刷脸签到,将对应的记录计入刷脸签到数(face_count);当sign_type等于1时,表示系统代签,将对应的记录计入系统代签总数(work_count)。总签到数(total_count)则是所有签到记录的数量。
这样,可以通过执行以上SQL语句来得到所需的统计结果。
阅读全文