为什么结果取决于 having 子句
Why results depend on the having clause
我不明白为什么 table clients
中的结果是空的:
SELECT SUM(clients.age), COUNT(*)
FROM clients
returns
null
, 0
但是当我添加子句时
GROUP BY clients.age
它returns空
我无法理解 GROUP BY
影响结果的方式,因为我知道 GROUP BY
在 SELECT
.
之前执行
带有 GROUP BY
的查询请求一个结果集,其中每个不同的 clients.age
包含一行。由于没有任何 clients.age
值,因此返回 0 行。如果没有 GROUP BY
,查询请求一行包含整个 table 的聚合。由于请求了单个汇总行,因此无论 table 是否为空,都会返回它。
我不明白为什么 table clients
中的结果是空的:
SELECT SUM(clients.age), COUNT(*)
FROM clients
returns
null
, 0
但是当我添加子句时
GROUP BY clients.age
它returns空
我无法理解 GROUP BY
影响结果的方式,因为我知道 GROUP BY
在 SELECT
.
带有 GROUP BY
的查询请求一个结果集,其中每个不同的 clients.age
包含一行。由于没有任何 clients.age
值,因此返回 0 行。如果没有 GROUP BY
,查询请求一行包含整个 table 的聚合。由于请求了单个汇总行,因此无论 table 是否为空,都会返回它。