【发布时间】:2021-03-01 06:15:46
【问题描述】:
我有两张这样的表:
table1(user, id, sex) table2(user, name, sex)
jjj 123 m jjj John m
jjj 124 m bbb Bob m
jjj 125 m ppp Pete f
bbb 126 m
bbb 127 f
ppp 128 f
ppp 129 m
ppp 130 m
我想要一个结果表,它显示表 2 中所有用户的姓名和性别,这些用户在某个时间点改变了他们的性别,以及每个姓名拥有多少用户的计数。所以这将是结果表:
(user, name, sex, count)
bbb Bob m 2
ppp Pete f 3
目前我正在使用这个查询:
select table2.user, table2.name, table2.sex, count(*)
from table1
join table2 on table1.user = table2.user
where table1.sex <> table2.sex
group by table2.user, table2.name, table2.sex
order by user
但是,计数列仅从生成的连接表中计数,而不是从原始表 1 中计数。有任何想法吗?谢谢。
【问题讨论】:
标签: sql postgresql count inner-join lateral-join