人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

mysqlからのランキングデータ取得に関して質問です。

現在、Aテーブルには以下のようにデータが入っています。

id value
1 A
2 B
3 B
4 C
5 D
6 C
7 C

上記では、「A:1個」「B:2個」「C:3個」「D:1個」となっているので、「valueの数が多い順に2つ」取得しようとすれば、CとBを取得できなければなりません。
また、できればValueの個数も同時に取得したいです。
すなわち「C(3個)」「B(2個)」と取得できれば最高です。

方法をご存知の方いらっしゃいましたら教えていただきたいです。
ちなみにmysqlは5.1を、phpは5.2を使用しております。

それでは、よろしくお願いします。

●質問者: takaponn12
●カテゴリ:インターネット ウェブ制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● eiji_hate
●100ポイント

実行確認しておりませんが、下記SQLで取得できると思います。
もし、エラーが出たり、結果が違っていたら、コメント下さい。


SELECT
value
,count(value) as count
FROM
Aテーブル
GROUP BY
id
ORDER BY
count DESC
LIMIT
2


2 ● a-kuma3
●100ポイント

こんな感じ。

select value, count(value) as num from A group by value order by num desc limit 2
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ