我有一个表,它有两个外键:
| exp_fk|bd_fk(可空)|
| - ------|- ------|
| exp_id1|bd_id1|
| exp_id2|bd_id2|
| exp_id1|bd_id2|
| exp_id2|bd_id2|
此表没有唯一性约束。
我希望能够查询有多少个exp_id具有超过1个bd_fk。因此,在上表中,我应该返回计数1,因为exp_id1具有两个唯一的bd_id(bd_id1,bd_id2),但exp_id2没有,因为它具有相同的bd_fk。
我试过:
select exp_fk, bd_fk, count(*) from table
where bd_fk is not null
group by exp_fk, bd_fk
having count(*) > 1;
问题是拥有并不是在寻找唯一的bd_fk。
2条答案
按热度按时间ldioqlga1#
使用子查询查找相关的
exp_fk
值,并对这些值进行计数:q3qa4bjr2#
要计算具有多个唯一
bd_fk
的exp_id's
的数量,可以修改查询以使用子查询计算每个exp_id
的非重复bd_fk's
,然后使用另一个子查询计算具有多个非重复bd_fk
的exp_id's
的数量试试这个查询: