2012-03-15 32 views
1

我想做一个查询,我得到前3名撰稿人,即他们写了最多的页面/帖子。我会通过与每行关联的用户的session_id选择数据,即他们写入的页面。我想选择并排列数据库中行数最多的前3名。我如何查询这个?我在想......做一个查询,以获得数据行中排名前3的user_id id?

SELECT DISTINCT user_id 
FROM music_spot 
WHERE (need a condition here) 
ORDER BY (the person who contributed the most pages to the third 
LIMIT 3 

我怎么会做这样的事情?谢谢。

回答

2
SELECT user_id 
FROM music_spot 
WHERE session_id = 123 
ORDER BY count(user_id) desc 
group by user_id 
LIMIT 3 
+0

这得到所有user_ID的年代。现在,我怎么才能得到每个id的一个出现,并按大多数行中显示的顺序排列它们。我试过DISTINCT,但那不起作用。 – Graham 2012-03-15 06:50:43

1
SELECT user_id, COUNT(post_id) 
FROM music_spot 
GROUP BY UserID 
ORDER BY COUNT(user_id) DESC 
LIMIT 0,3 
0
SELECT user_id, COUNT(row_id) 
FROM music_spot 
GROUP BY user_id 
ORDER BY COUNT(user_id) DESC 
LIMIT 0,3 
相关问题