[英]Nested SQL Query where id from one table matches to another table where two specific entries exist
我有两个表:person_demographics,person_social_profile,它们由person_id列链接
p_d代表不重复的人,p_s_p代表他们的社交网络帐户
p_d每个person_id仅具有一个条目,但是p_s_p每个同一person_id将具有很多行
我需要统计一下数据库中有多少人居住在德国,这是从p_d的“国家/地区”列中提取的,那里的p_s_p中也存在来自Facebook的社交帐户,并且还存在着twitter的社交帐户。
我到目前为止
select person_id from person_demographics pd
where pd.country like '%Germany%' or pd.country = 'DE'
用于为居住在德国的用户选择person_id的集合,以及
select * from person_social_profiles psp where psp.person_id <is in previous results> and (psp.source = 'facebook' or psp.source = 'twitter')
然后,我想到对person_id进行groupbykey并计数> 1个条目的组,以获取居住在德国且同时具有facebook和twitter的唯一身份用户的数量,但是在一个查询中将它们链接在一起时遇到了麻烦。 任何建议将不胜感激,谢谢。
我建议两个聚合级别:
select count(*)
from (select pd.person_id
from person_demographics pd join
person_social_profiles psp
on psp.person_id = pd.pser_id
where (pd.country like '%Germany%' or pd.country = 'DE') and
psp.source in ('facebook', 'twitter')
group by pd.person_id
having count(distinct psp.source) = 2
) pd;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.