跳至主要内容
跳至主要内容

HAVING 子句

允许过滤由 GROUP BY 生成的聚合结果。它类似于 WHERE 子句,但区别在于 WHERE 在聚合之前执行,而 HAVING 在聚合之后执行。

可以在 HAVING 子句中通过其别名引用 SELECT 子句中的聚合结果。或者,HAVING 子句可以过滤不在查询结果中返回的附加聚合的结果。

示例

如果有一个名为 sales 的表,如下所示

CREATE TABLE sales
(
    region String,
    salesperson String,
    amount Float64
)
ORDER BY (region, salesperson);

您可以这样查询它

SELECT
    region,
    salesperson,
    sum(amount) AS total_sales
FROM sales
GROUP BY
    region,
    salesperson
HAVING total_sales > 10000
ORDER BY total_sales DESC;

这将列出其区域内总销售额大于 10,000 的销售人员。

限制

如果在没有执行聚合的情况下,不能使用 HAVING。请使用 WHERE 代替。

    © . This site is unofficial and not affiliated with ClickHouse, Inc.