PostgreSQL – HAVING 子句
PostgreSQL 有一个 HAVING 子句,用于消除不符合特定标准或条件的行组。 ii 一般与 GROUP BY 子句结合使用来过滤不满足指定条件的组行。
Syntax:
SELECT
column_1,
aggregate_function (column_2)
FROM
tbl_name
GROUP BY
column_1
HAVING
condition;
现在让我们分析一下上面的语法:
- 在上面的语法中,aggregate_function 表示 SUM()、COUNT() 等函数。
- HAVING 子句为由 GROUP BY 子句创建的组行提供条件。
- WHERE 子句在应用 GROUP BY 子句之前为每一行设置条件。
在本文中,我们将使用示例 DVD 租赁数据库,此处进行了说明,可以通过单击示例中的此链接进行下载。
示例 1:
在这里,我们将使用示例数据库的“payment”表中的 HAVING 子句查询以选择唯一花费超过 200 美元的客户。
SELECT
customer_id,
SUM (amount)
FROM
payment
GROUP BY
customer_id
HAVING
SUM (amount) > 200;
输出:
示例 2:
在这里,我们将使用示例数据库的“customer”表中的 HAVING 子句查询选择拥有超过 200 个客户的商店。
SELECT
store_id,
COUNT (customer_id)
FROM
customer
GROUP BY
store_id
HAVING
COUNT (customer_id) > 200;
输出: