📜  PostgreSQL – HAVING 子句

📅  最后修改于: 2022-05-13 01:57:14.729000             🧑  作者: Mango

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;


输出: