mysql - 选择 MySQL 中出现次数最多的值

标签 mysql group-by greatest-n-per-group

我正在寻找一种方法来选择出现次数最多的值,例如在每个主题中发帖最多的人;

SELECT MOST_OCCURRING(user_id) FROM thread_posts GROUP BY thread_id

有什么好的方法吗?

最佳答案

如果你想在每个线程的基础上进行计数,我认为你可以使用嵌套查询;先按线程分组,再按用户分组:

SELECT thread_id AS tid,
    (SELECT user_id FROM thread_posts 
        WHERE thread_id = tid 
        GROUP BY user_id
        ORDER BY COUNT(*) DESC
        LIMIT 0,1) AS topUser
FROM thread_posts
GROUP BY thread_id

关于mysql - 选择 MySQL 中出现次数最多的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3257064/

相关文章:

sql - 选择具有最大 ID 和特定条件的行

SQL 在表中查找五个最大的数字而不是一个 Max

php - 登录页面的问题

mysql - 我正在尝试创建一个查询以将数据从一个表带到另一个表,如下所述?

mysql - 将数据从实时服务器上的文件加载到 mysql 中

python - 对 Python 中 Pandas 的多列 groupby 操作的含义感到困惑

ruby-on-rails - 如何在 Ruby on Rails 中构建一个查询,该查询仅加入一个 has_many 关系的最大值并在该关系上包含一个选择过滤器?

mysql - 如何建立多个子实体与列表属性之间的关系?

python - 如何旋转数据框分组结果

sql - 计算组内的每个条件