为什么结果取决于 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 BYSELECT.

之前执行

带有 GROUP BY 的查询请求一个结果集,其中每个不同的 clients.age 包含一行。由于没有任何 clients.age 值,因此返回 0 行。如果没有 GROUP BY,查询请求一行包含整个 table 的聚合。由于请求了单个汇总行,因此无论 table 是否为空,都会返回它。