温馨提示×

Case When在分组统计中的应用

sql
小樊
88
2024-08-30 16:53:55
栏目: 编程语言

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 以及他们的小额订单、中等订单和大额订单的数量。

0