繁体   English   中英

嵌套SQL查询,其中一个表中的ID与另一个存在两个特定条目的表匹配

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM