1

私の現在のクエリ:

SELECT *
FROM `reported_users`
GROUP BY `reported_user`
ORDER BY ???

私はreported_usersテーブルを持っています。私のサイトのユーザーがルールに違反したとして別のユーザーを報告すると、報告されたユーザーがこのテーブルに行として挿入されます。したがって、同じユーザーがテーブルに複数の行を持つことができます。フィールドで使用GROUP BYしているときに一度だけ各ユーザーを取得できるようにするため。しかし、報告されたユーザーの数が最も多いものから少ないものまで、reported_userどうすればよいでしょうか。ORDER BYしたがって、テーブルが次のようになっている場合:

reported_user | reporter
---------------------------
Joe           | Bob
Jake          | Nady
Lisa          | Tim
Joe           | Jim
Joe           | Foo
Lisa          | Bar

クエリは次を返す必要があります。

Joe (3)
Lisa (2)
Jake (1)

また、各ユーザーが報告された回数を返したいと思います。これはどのように行うことができますか?

4

2 に答える 2

4
SELECT reported_user, count(*)
FROM reported_users
GROUP BY reported_user
ORDER BY count(*) desc
于 2012-07-13T23:43:28.053 に答える
3
SELECT reported_user, count(*)
FROM reported_users
GROUP BY reported_user
ORDER BY count(*) Desc
于 2012-07-13T23:43:47.683 に答える