Postgres/ANSI SQL 系统如何将 'count' 聚合与 GROUP BY 字段相关联

How Postgres/ANSI SQL systems relate 'count' aggregates to GROUP BY fields

我试图理解以下 SQL 查询中的 group bycount(*)

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;

所以我们要加入三个 table:FizzBuzzFoo。然后我们从加入的 table 中过滤掉记录 Foo.borrowed 字段超过 6 个月。但我不明白 count(*) 是如何计算的 以及它与 group by 子句中提到的字段的关系。 有什么想法吗?

在结果中,Fizz.countryId, Buzz.kindId, Buzz.razId 的每个不同组合只会显示一行。这就是 group by 所做的。

因此,每个结果行可能代表许多原始行。多少? count(*)告诉你。