我有两张桌子:
puid | personid | ptitle
----------------------------
1 | 200 | richard
2 | 201 | swiss
suid | personidref | stitle
----------------------------
1 | 200 | alf
2 | 201 | lando
3 | 200 | willis
4 | 201 | luke
5 | 201 | kojak
6 | 200 | r2-d2
7 | 201 | jabba
我试图用表二来计算连接数。我试图找出使用generate_series
或子选择,但我不能面对语法。
英语:请向我展示表一中每个独特的人,并列出表二中每个条目的计数。
示例输出:
puid | personid | ptitle | count
---------------------------------
1 | 200 | richard | 3
2 | 201 | swiss | 4
这是一个简单的子查询,generate_series
是正确的工具吗?
答案 0 :(得分:2)
select *
from
t1
left join
(
select personidref, count(*) total
from t2
group by personidref
) s using(personidref)
order by puid
请注意,在加入之前进行聚合可能比在之后执行聚合具有性能提升。