sql - 你能数出两个表格中两列的不同单元格吗?
问题描述
我有两个数据集:
- 公共 instagram 频道(followers_count 居住的地方)
- 公共赞助的 Instagram 帖子(influencer_starting_followers 居住的地方)
我想从两个表中获取落在微、中、宏和名人范围内的单元格的计数。
但是,现在我在下面的查询中,它为两者提取了完全相同的数字,情况并非如此。
任何想法我做错了什么?
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% |
谢谢您的帮助 :)
解决方案
在我的脑海中,我认为我看到了两个问题:
- 通过指定 JOIN,您只会获得在 BOTH 表中都有记录的 Influencer_id。看起来你可能想要一个完整的外部连接。问问自己,如果我在表 A 而不是 B 会怎样,反之亦然。
- 你为什么要计算不同的计数?您似乎想计算有资格归入不同类别的人。对平均值求和也几乎总是错误的。
我认为这就是 Gordon Linoff 要求更多澄清的原因。
推荐阅读
- linux - 无法将性能时间戳与系统纪元时间对齐
- laravel - 在我的 phpunit 测试中模拟 laravel 5.8 中的单例类
- csv - 如何在我的 awk 脚本中放置删除重复行的命令?
- android - ArrayAdapter off spinner 无法解决
- php - 将空或非空的 BLOB 列返回为 1 或 0
- android - 如何解决依赖模块的android库中的依赖关系
- selenium - Serenity 测试错误元素在无头模式下不可用
- java - Spring AOP:将参数传递给目标方法:params null。为什么?
- sql - 用于oracle的基于Web的查询工具(类似于oracle-sqldeveloper)可以用作Web应用程序
- c++ - 自定义问题中奇怪的直接照明