case when+count
时间: 2024-05-12 17:12:13 浏览: 14
当我们需要在SQL查询中对不同的条件进行统计时,可以使用case when语句来实现。而结合count函数,可以更方便地对满足条件的行数进行计数。
例如,我们有一个学生表,其中有一个“性别”字段,现在想要统计男女学生人数:
SELECT
COUNT(CASE WHEN gender = 'male' THEN 1 END) AS male_count,
COUNT(CASE WHEN gender = 'female' THEN 1 END) AS female_count
FROM student;
以上语句中,使用case when语句对不同性别的学生进行了判断,并将满足条件的行数记为1,未满足条件的行记为null。然后再使用count函数对满足条件的行数进行计数,从而得到男女学生的人数。
相关问题
COUNT 中使用 case when + distinct
在MySQL中,我们可以使用COUNT函数来计算特定条件下的行数,同时也可以使用DISTINCT关键字来获取不同的值。如果你需要在COUNT函数中使用CASE WHEN语句和DISTINCT关键字,可以按照以下格式编写SQL语句:
```
SELECT COUNT(DISTINCT CASE WHEN condition1 THEN column1 ELSE NULL END) AS count1,
COUNT(DISTINCT CASE WHEN condition2 THEN column2 ELSE NULL END) AS count2,
COUNT(DISTINCT CASE WHEN condition3 THEN column3 ELSE NULL END) AS count3
FROM table_name;
```
在这个例子中,我们使用了三个CASE WHEN语句和DISTINCT关键字,以便获取每个条件下不同的值的数量。
- 当条件1成立时,我们计算column1的不同值的数量,并将其赋值给计数器count1。
- 当条件2成立时,我们计算column2的不同值的数量,并将其赋值给计数器count2。
- 当条件3成立时,我们计算column3的不同值的数量,并将其赋值给计数器count3。
请注意,我们在COUNT函数中使用了DISTINCT关键字,以便获取不同的值的数量。如果我们省略了DISTINCT关键字,则COUNT函数将返回符合条件的行数,而不是不同值的数量。
case when 和count
引用:sum(case when onefield = 1 then 1 else 0 end) one_count 。引用:sum(case when onefield = 0 then 1 else 0 end) zero_count, 引用:1 case when 写法 2 sum case when 用法 3 select 拼接字段 示例如下: when 2 then 'C' else 'D' end ) as '类型',count(*) as '数量' from table group by orderType。
case when是一种用于条件判断的语法结构,在SQL查询中经常被使用。通过case when可以根据条件返回不同的值。在引用中,sum(case when onefield = 1 then 1 else 0 end)表示统计满足条件onefield等于1的记录数量,并将结果存储在one_count中。同理,在引用中,sum(case when onefield = 0 then 1 else 0 end)表示统计满足条件onefield等于0的记录数量,并将结果存储在zero_count中。而在引用中,case when被用于根据不同的条件返回不同的结果,并使用sum函数对结果进行求和,最后使用select语句进行字段拼接并按orderType进行分组统计。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [sql 语句进阶操作(count、sum、case-when、group_concat、order by limit offset、dense_rank rank、exis...](https://blog.csdn.net/lyh_950622/article/details/107185718)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *3* [case when和sum case when 写法及拼接字段](https://download.csdn.net/download/u013716500/9540627)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)