mysql - 如何在生成的查询上使用 MySQL COUNT() 语句?

标签 mysql sql

我创建了一个查询,用于查找某个特定网站的用户,这些用户喜欢网站上的每张照片并脱颖而出成为潜在的机器人。

我正在尝试计算机器人的数量。

我的查询目前返回所有机器人用户名和他们喜欢的照片数量,但我无法简单地计算它们。

能够在下面的查询生成的表上进行 COUNT(*) 是最理想的。

SELECT
    username,
    COUNT(*) AS total_likes
FROM users
JOIN likes
    ON likes.user_id = users.id
GROUP BY likes.user_id
HAVING total_likes = (SELECT COUNT(*) FROM photos);

最佳答案

您可以使用子查询来做到这一点:

SELECT COUNT(*) as num_potential_bots
FROM (SELECT u.username, COUNT(*) AS total_likes
      FROM users u JOIN
           likes l
           ON l.user_id = u.id
      GROUP BY l.user_id
      HAVING total_likes = (SELECT COUNT(*) FROM photos)
     ) u;

关于mysql - 如何在生成的查询上使用 MySQL COUNT() 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59632267/

相关文章:

mysql - SQL表1列到表2两列关系

sql - SQL 中交换一对多关系方向的最佳方法是什么?

php - 是否可以使用 PHP PDO::FETCH_UNIQUE 在结果数组中保留唯一索引?

mysql - 如何将所有列合并为一列

sql - 如何在使用 LIKE 运算符的地方使用 split 函数

php - 在 CakePHP 中使用 UUID,推荐使用什么数据类型?

mysql - 我可以使用连接查询来执行此操作吗?

sql - 根据字段开头的内容选择记录?

MySQL 从另一个表插入带有 2 个选项的 WHERE 语句

mysql - MySQL 中何时使用单引号、双引号和反引号