CASE WHEN
是 SQL 语言中的一个条件表达式,它可以在分组统计查询中应用,用于对数据进行分类和计算
以下是一个使用 CASE WHEN
的分组统计示例。假设我们有一个名为 orders
的表,其中包含以下列:order_id
、customer_id
、order_date
和 amount
。现在,我们想要根据订单金额将客户分为三类:小额订单(<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 以及他们的小额订单、中等订单和大额订单的数量。