选择MySQL中最常出现的值

Ais*_*ina 5 mysql group-by greatest-n-per-group

我正在寻找一种方法来选择最常出现的值,例如每个帖子发布最多的人;

SELECT MOST_OCCURRING(user_id) FROM thread_posts GROUP BY thread_id
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?

Bre*_*len 10

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

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
Run Code Online (Sandbox Code Playgroud)