我无法理解为什么表clients
中的结果为空的原因如下:
SELECT SUM(clients.age), COUNT(*)
FROM clients
返回
null
,0
但是当我添加条款
时GROUP BY clients.age
它返回空
我无法理解GROUP BY
影响结果的方式,因为我理解GROUP BY
在SELECT
之前执行。
答案 0 :(得分:3)
GROUP BY
的查询请求每个不同clients.age
包含一行的结果集。由于没有任何clients.age
值,因此返回0行。如果没有GROUP BY
,查询将请求包含整个表的聚合的一行。由于请求了一个摘要行,因此无论表是否为空,都会返回该行。