2012-03-15 5 views
1

私は上位3人の寄稿者、つまり最も多くのページ/投稿を書いたという質問をしたいと思います。私は、各行、すなわち彼らが書いたページに関連付けられたそのユーザーのsession_idによってデータを選択します。私はDB内で最も多くの行を持つ上位3人を選択して注文したいと思っています。これをどのように問い合わせることができますか?私は考えていた...データの行でuser_id IDの上位3回を取得するクエリを実行しますか?

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 

どうすればいいですか?ありがとうございました。 USER_IDさんの全てを取得します

答えて

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

。さて、どのようにして各idの出現を1つだけ取得し、最も多くの行に出現したかを順序付けることができます。 DISTINCTを試しましたが、うまくいきません。 – Graham

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 
関連する問題