我正在对Instagram用户数据库进行数据分析,我需要通过检查哪个用户喜欢网站上的所有照片来找到Bots用户,因为喜欢所有照片对于真正的用户来说实际上是不可能的。
表格格式
like
--
user_id
photo_id
created_at
photos
--
id
image_url
user_id
created_at
user
--
id
username
created_at
----试过----
SELECT photos.user_id, count(photos.user_id) AS users_in_photos, count(likes.user_id) AS users_in_likes
FROM photos
INNER JOIN likes
ON photos.user_id = likes.user_id
group by photos.user_id;
我希望得到同时出现在照片和喜欢表中的用户,通过查看他们的数量,我可以确定谁是机器人。
所有照片的数量可以通过:
SELECT COUNT(*) FROM photos
假设表likes
中没有重复的user_id
和photo_id
组合,使用聚合并过滤HAVING
子句中的bot:
SELECT user_id
FROM likes
GROUP BY user_id
HAVING COUNT(*) = (SELECT COUNT(*) FROM photos);