oracle用case when计数,SUM统计使用CASE WHEN
时间: 2023-07-12 18:06:15 浏览: 75
当需要在Oracle数据库中进行统计时,可以使用CASE WHEN语句对数据进行条件分组,并使用SUM函数对分组后的数据进行求和。
例如,假设有一个orders表,其中包含订单信息和订单状态。要计算每个状态的订单数和总金额,可以使用以下查询:
```
SELECT
status,
COUNT(CASE WHEN status = 'completed' THEN 1 ELSE NULL END) as num_completed_orders,
COUNT(CASE WHEN status = 'cancelled' THEN 1 ELSE NULL END) as num_cancelled_orders,
SUM(CASE WHEN status = 'completed' THEN amount ELSE 0 END) as total_completed_amount,
SUM(CASE WHEN status = 'cancelled' THEN amount ELSE 0 END) as total_cancelled_amount
FROM orders
GROUP BY status;
```
在这个查询中,我们使用了CASE WHEN语句将数据按照订单状态进行分组,然后使用COUNT和SUM函数对每个分组内的数据进行统计。注意,在COUNT函数中,我们使用了NULL代替0,这是为了避免对不存在的订单状态进行计数。
使用类似的方法,可以对其他字段进行分组和统计。
相关问题
oracle sum case when
你可以使用Oracle的SUM函数结合CASE WHEN语句来实现条件求和。以下是一个示例:
```sql
SELECT SUM(CASE WHEN condition THEN column_name ELSE 0 END) AS sum_result
FROM your_table;
```
在上面的查询中,你需要将"condition"替换为你的条件表达式,"column_name"替换为你想要求和的列名,"your_table"替换为你的表名。查询的结果将会返回满足条件的行的列值之和。如果条件不满足,将返回0。
希望这个示例能帮到你!如果你有任何其他问题,请随时提问。
oracle中case when如何使用
Oracle中的CASE WHEN是一种条件表达式,用于根据满足或不满足特定条件的值来执行不同的操作。它可以用于SELECT语句的字段显示、WHERE子句的条件筛选和ORDER BY子句的排序。
在SELECT语句中,CASE WHEN可以用于根据特定条件生成不同的结果值。例如,以下是一个使用CASE WHEN的示例:
SELECT ID,
CASE WHEN SEX=0 AND AGE<=18 THEN NAME||'(女)'||AGE||'岁'
ELSE NAME||AGE||'岁'||'(不满足小于等于18岁的女生条件)'
END DETAIL
FROM "PeopleInfo";
此语句将根据AGE和SEX字段的值生成不同的结果,并将其作为DETAIL字段的值返回。
在GROUP BY子句中,CASE WHEN可以用作分组的条件判断。例如,以下是一个使用CASE WHEN作为分组条件的示例:
SELECT CASE WHEN AGE=18 THEN '18'
WHEN AGE=19 THEN '19'
END AGE,
COUNT(*)
FROM "PeopleInfo"
GROUP BY CASE WHEN AGE=18 THEN '18'
WHEN AGE=19 THEN '19'
END;
此语句将根据AGE字段的值进行条件判断,并将结果作为AGE字段的值进行分组。