Postgres / ANSI SQL系统如何将“计数”聚合与GROUP BY字段相关联

时间:2018-05-23 20:34:43

标签: sql postgresql group-by count ansi-sql

我正在尝试理解以下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;

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

1 个答案:

答案 0 :(得分:1)

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

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