Case When在分组统计中的应用

avatar
作者
筋斗云
阅读量:0

CASE WHEN 是 SQL 语言中的一个条件表达式,它可以在分组统计查询中应用,用于对数据进行分类和计算

以下是一个使用 CASE WHEN 的分组统计示例。假设我们有一个名为 orders 的表,其中包含以下列:order_idcustomer_idorder_dateamount。现在,我们想要根据订单金额将客户分为三类:小额订单(<100)、中等订单(100-500)和大额订单(>500),并计算每个类别的订单数量。

SELECT   customer_id,   COUNT(CASE WHEN amount < 100 THEN 1 END) AS small_orders,   COUNT(CASE WHEN amount >= 100 AND amount <= 500 THEN 1 END) AS medium_orders,   COUNT(CASE WHEN amount > 500 THEN 1 END) AS large_orders FROM   orders GROUP BY   customer_id; 

在这个查询中,我们使用了 CASE WHEN 表达式来对订单金额进行分类。当订单金额满足特定条件时,CASE WHEN 会返回 1,否则返回 NULL。然后,我们使用 COUNT() 函数来计算每个类别的订单数量。注意,COUNT() 函数不会计算 NULL 值,因此只有满足条件的行才会被计算。

这个查询将返回一个结果集,其中包含每个客户的 ID 以及他们的小额订单、中等订单和大额订单的数量。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!