在 SQL 中,您可以使用 CASE WHEN 表达式与聚合函数(如 SUM、COUNT、AVG、MAX 和 MIN)结合使用
假设我们有一个名为 “orders” 的表格,其中包含以下列:order_id, customer_id, order_date 和 total_amount。现在,我们想要计算每个客户的平均订单金额,但只考虑订单金额大于 100 的情况。
以下是一个示例查询,展示了如何结合使用 CASE WHEN 和 AVG 聚合函数:
SELECT
customer_id,
AVG(CASE WHEN total_amount > 100 THEN total_amount ELSE NULL END) AS average_order_amount
FROM
orders
GROUP BY
customer_id;
在这个查询中,我们首先选择 “customer_id” 列。然后,我们使用 AVG 函数计算每个客户的平均订单金额。通过使用 CASE WHEN 表达式,我们可以确保只计算订单金额大于 100 的行。当 total_amount 大于 100 时,我们使用 total_amount 值;否则,我们使用 NULL(表示不计算此行)。最后,我们按 “customer_id” 对结果进行分组。