考虑具有以下记录的关系表(Balance,Customer):
-- Query 1:
select A.Customer, count(B.Customer)
from account A, account B
where A.balance < B.balance
group by A.Customer;
-- Query 2:
select A.Customer, count(B.Customer)
from account A, account B
where A.balance < B.balance;
Run Code Online (Sandbox Code Playgroud)
第一个查询没有输出.使用第二个查询,我得到一个count = 0的输出.
在这两种情况下,没有满足where条款中条件的行,因此不返回任何行.那么为什么count函数仅在第二种情况下给出输出?
没有group by 始终返回一行的聚合查询(如果它在语法上是正确的).这样的计数就是0.
一个聚合查询,group by每组返回一行.如果没有组,则没有行.
| 归档时间: |
|
| 查看次数: |
588 次 |
| 最近记录: |