PostgreSQL HAVING 子句
HAVING
SQL 中添加了 HAVING 子句,因为 WHERE 子句不能与聚合函数一起使用。
聚合函数通常与 GROUP BY 子句一起使用,通过添加 HAVING 我们可以像使用 WHERE 子句一样编写条件。
实例
仅列出出现次数超过 5 次的国家/地区:
SELECT COUNT(customer_id), country FROM customers GROUP BY country HAVING COUNT(customer_id) > 5;
更多 HAVING 实例
以下 SQL 语句仅列出总价为 400 美元或以上的订单:
实例
SELECT order_details.order_id, SUM(products.price) FROM order_details LEFT JOIN products ON order_details.product_id = products.product_id GROUP BY order_id HAVING SUM(products.price) > 400.00;
列出订单金额达到或超过 1000$ 的客户:
实例
SELECT customers.customer_name, SUM(products.price) FROM order_details LEFT JOIN products ON order_details.product_id = products.product_id LEFT JOIN orders ON order_details.order_id = orders.order_id LEFT JOIN customers ON orders.customer_id = customers.customer_id GROUP BY customer_name HAVING SUM(products.price) > 1000.00;