检查User是否为MySql中的bot



我正在对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_idphoto_id组合,使用聚合并过滤HAVING子句中的bot:

SELECT user_id
FROM likes
GROUP BY user_id
HAVING COUNT(*) = (SELECT COUNT(*) FROM photos);

最新更新