mysql count case when
时间: 2023-11-09 09:59:41 浏览: 49
可以使用以下语句进行 mysql count case when 操作:
```
SELECT COUNT(CASE WHEN condition THEN 1 ELSE NULL END) FROM table_name;
```
其中 condition 是自定义条件,table_name 是表名。
相关问题
mysql case when count
根据引用和引用的内容,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语句来得到所需的统计结果。
mysql when case配合count
当你想要使用CASE语句配合COUNT函数在MySQL中进行条件计数时,可以按照以下方式编写查询语句:
```sql
SELECT COUNT(CASE WHEN condition THEN 1 END) AS count_result
FROM table
```
在这个示例中,condition是用于筛选行的条件。当condition满足时,对应的行会被计入计数结果中,否则不计入。
例如,假设我们有一个名为students的表,其中包含学生的姓名(name)和成绩(score),我们想要计算成绩大于等于80分的学生数量,可以这样写:
```sql
SELECT COUNT(CASE WHEN score >= 80 THEN 1 END) AS count_result
FROM students
```
这将返回一个名为count_result的列,其中包含满足条件的行的数量。
在MySQL中,COUNT函数会忽略NULL值,因此在CASE语句中不需要指定ELSE部分。
希望这个示例能够帮助你理解如何在MySQL中使用CASE语句配合COUNT函数进行条件计数!