0

ユーザーからの評価を保存したテーブルがあります。

例えば:

UserId  Rating
 3            1  
 3            2
 1            1
 1            2
 1            3
 1            4
 2            1
 2            23
 2            4

最大回数を評価した10人のユーザーを取得する必要があります。

例えば:

 1 rated 4 times
 2 rated 3 times
 3 rated 2 times...

mysqlを使用してクエリを作成する方法はありますか?

4

1 に答える 1

2

userIDでグループ化し、グループ化された行をカウントし、カウントで降順で並べ替える必要があります。次に、クエリを10行に制限します。

SELECT userID, count(*) times
FROM users
GROUP BY userID
ORDER BY times DESC
LIMIT 10

上記の出力が必要な場合は、次のことを試してください。

SELECT CONCAT_WS(' ', userID, 'rated', count(*), 'times')
FROM users
GROUP BY userID
ORDER BY count(*) DESC
LIMIT 10

このフィドルを参照してください。

于 2013-02-06T13:04:56.087 に答える