首页 > 解决方案 > 你能数出两个表格中两列的不同单元格吗?

问题描述

我有两个数据集:

我想从两个表中获取落在微、中、宏和名人范围内的单元格的计数。

但是,现在我在下面的查询中,它为两者提取了完全相同的数字,情况并非如此。

任何想法我做错了什么?

select (case when followers_count < 25000 then 'micro'
 when followers_count BETWEEN 25001 AND 100000 then 'mid'
when followers_count BETWEEN 100001 AND 499999  then 'macro'
else 'Celebrity'
end) as CreatorSize, 
count(distinct followers_count) as TotalBase,
count (distinct influencer_starting_followers) as PaidBase,
(sum(average_likes + average_comments)/ sum(followers_count)) as ER, 
(sum(likes + comments + video_views)/sum(influencer_starting_followers)) as paidER,
from  `public_instagram_channels` p
JOIN `public_sponsored_instagram_posts` as psip
ON psip.influencer_id=p.influencer_id
group by CreatorSize

Public_instagram_channels

追随者数 平均喜欢 平均评论 影响者_id
1000 200 50 1234
1000 200 50 5678

Public_supported_instagram_posts

影响者_开始_追随者 喜欢 注释 video_views 影响者_id
1000 200 50 20 1234
1000 200 50 20 1234

期望的结果:Public_owned_instagram_posts

创作者大小 总基数 急诊室 付费基础 付费者
200 1% 20 2%
200 2% 20 2%
200 3% 20 2%
名人 100 4% 20 2%

谢谢您的帮助 :)

标签: sqlgoogle-bigquery

解决方案


在我的脑海中,我认为我看到了两个问题:

  1. 通过指定 JOIN,您只会获得在 BOTH 表中都有记录的 Influencer_id。看起来你可能想要一个完整的外部连接。问问自己,如果我在表 A 而不是 B 会怎样,反之亦然。
  2. 你为什么要计算不同的计数?您似乎想计算有资格归入不同类别的人。对平均值求和也几乎总是错误的。

我认为这就是 Gordon Linoff 要求更多澄清的原因。


推荐阅读