我正在尝试理解以下SQL查询中的group by
和count(*)
:
select Fizz.countryId, Buzz.kindId, Buzz.razId, count(*)
from Foo
join Buzz on Foo.BuzzId = Buzz.id
join Fizz on Foo.FizzId = Fizz.id
where
Foo.borrowed > CURRENT_DATE - INTERVAL '6 months'
group by
Fizz.countryId, Buzz.kindId, Buzz.razId;
所以我们加入了三个表:Fizz
,Buzz
和Foo
。然后我们从连接表中过滤出记录
其Foo.borrowed
字段超过6个月。但我不理解的是如何计算count(*)
以及它与group by
子句中提到的字段的关系。 有什么想法吗?
答案 0 :(得分:1)
在结果中,只会为Fizz.countryId, Buzz.kindId, Buzz.razId
的每个不同组合显示一行。这就是group by
所做的。
因此,每个结果行可能代表许多原始行。多少? count(*)
告诉你。