count里的case when
时间: 2024-06-13 17:03:11 浏览: 25
`CASE WHEN` 是 SQL 中的一种条件表达式,用于根据给定的条件对数据进行分组和转换。在 `COUNT` 函数中使用 `CASE WHEN` 的目的是为了过滤或调整计数,仅计算满足特定条件的行。这里的 `CASE` 语句通常有三个部分:
1. **WHEN** 子句:定义了一个或多个条件。如果某行的某个列满足这些条件,相应的 `THEN` 部分的值会被用来进行计数。
2. **THEN** 子句:当 `WHEN` 条件满足时,返回的结果值。这可能是实际的计数值,也可能是另一个表达式的计算结果。
3. **ELSE** 子句(可选):如果所有 `WHEN` 条件都不满足,`ELSE` 后面可以提供一个默认值,作为计数的依据。
例如,假设有一个名为 `orders` 的表,包含 `status` 列,你可以使用 `COUNT` 和 `CASE WHEN` 计算不同状态下的订单数量:
```sql
SELECT
COUNT(CASE WHEN status = 'Completed' THEN 1 ELSE NULL END) AS completed_orders,
COUNT(CASE WHEN status = 'Cancelled' THEN 1 ELSE NULL END) AS cancelled_orders,
COUNT(CASE WHEN status = 'Pending' THEN 1 ELSE NULL END) AS pending_orders
FROM orders;
```
这里 `CASE WHEN status = 'Completed' THEN 1 ELSE NULL END` 表示如果 `status` 是 'Completed',计数为 1,否则不计入。每个 `COUNT` 语句会分别计算每种状态的订单数量。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)