SQL 面试题 目录

SQL 中如何使用 HAVING 子句过滤分组?

推荐答案

本题详细解读

HAVING 子句的作用

HAVING 子句用于在 SQL 查询中对分组后的结果进行过滤。它通常与 GROUP BY 子句一起使用,用于筛选满足特定条件的分组。

使用场景

HAVING 子句通常用于以下场景:

  • 在分组后对聚合函数的结果进行过滤。
  • 筛选出满足特定条件的分组。

示例

假设有一个 orders 表,包含以下字段:order_id, customer_id, order_amount。我们想要找出订单总金额超过 1000 的客户。

解释

  • GROUP BY customer_id:按 customer_id 分组。
  • SUM(order_amount):计算每个客户的订单总金额。
  • HAVING SUM(order_amount) > 1000:筛选出订单总金额超过 1000 的客户。

注意事项

  • HAVING 子句只能用于分组后的结果过滤,不能用于单个行的过滤。
  • HAVING 子句通常与聚合函数(如 SUM, COUNT, AVG 等)一起使用。
  • 如果不需要分组,可以使用 WHERE 子句进行过滤。
纠错
反馈