【问题标题】:Check whether User is a bot or not in MySql在 MySql 中检查用户是否是机器人
【发布时间】:2022-11-20 01:10:50
【问题描述】:

我正在对 Instagram 用户数据库进行数据分析,我需要通过检查哪个用户喜欢网站上的所有照片来找到机器人用户,因为对于真实用户来说,喜欢所有照片实际上是不可能的。

表格格式

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;

有了这个,我希望获得同时出现在照片和喜欢表格中的用户,并且通过查看他们的数量我可以确定谁是机器人。

【问题讨论】:

  • 天气!=是否
  • 您正在测试的案例看起来非常具体,只会捕获做那件事的机器人,并且还会错误标记实际上喜欢所有图片的用户。但是,您的算法会对此进行检查。 . .但是你的问题是什么?

标签: mysql data-analysis


【解决方案1】:

所有照片的数量可以通过以下方式获得:

SELECT COUNT(*) FROM photos

假设likes表中不存在user_idphoto_id的重复组合,使用聚合过滤HAVING子句中的机器人:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-26
    • 1970-01-01
    • 2018-02-03
    • 2021-07-28
    • 1970-01-01
    • 2018-10-11
    • 2019-04-24
    • 2018-03-17
    相关资源
    最近更新 更多