HAVING
子句和 WHERE
子句在 SQL 查询中都用于过滤数据,但它们的作用范围和使用场景有所不同。以下是它们的主要异同点:
COUNT
, SUM
, AVG
等)。GROUP BY
之前执行。GROUP BY
之后执行。FROM
子句之后,GROUP BY
子句之前。GROUP BY
子句之后,ORDER BY
子句之前。假设有一个表 orders
,包含以下字段:order_id
, customer_id
, amount
。
SELECT customer_id, SUM(amount) AS total_amount
FROM orders
WHERE amount > 100
GROUP BY customer_id;
在这个查询中,WHERE
子句在聚合之前过滤掉 amount
小于 100 的行。
SELECT customer_id, SUM(amount) AS total_amount
FROM orders
GROUP BY customer_id
HAVING SUM(amount) > 500;
在这个查询中,HAVING
子句在聚合之后过滤掉 total_amount
小于 500 的客户。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。