CASE WHEN 后面 COUNT
时间: 2024-08-12 18:07:34 浏览: 103
oracle where case when where后面跟case when
CASE WHEN 语句是 SQL 中的一种条件表达式,常用于创建复杂的查询,根据特定的条件返回不同的结果。当你在 COUNT 函数后面使用 CASE WHEN,你可以根据某个字段的值来决定是否计入计数。
例如,假设你有一个销售数据表(Sales),其中有一个字段 `Status` 表示订单状态,可以是 'Completed' 或 'Cancelled'。你可以使用以下查询来计算已完成订单和已取消订单的数量:
```sql
SELECT
COUNT(*) AS TotalOrders,
SUM(CASE WHEN Status = 'Completed' THEN 1 ELSE 0 END) AS CompletedOrders,
SUM(CASE WHEN Status = 'Cancelled' THEN 1 ELSE 0 END) AS CancelledOrders
FROM Sales;
```
在这个查询中:
- `COUNT(*)` 计算所有订单总数。
- `SUM(CASE WHEN Status = 'Completed' THEN 1 ELSE 0 END)` 当 `Status` 为 'Completed' 时,计数为 1,否则为 0,最后求和得到已完成订单数。
- `SUM(CASE WHEN Status = 'Cancelled' THEN 1 ELSE 0 END)` 类似地,用于计算已取消订单数。
阅读全文