みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

参加者が多いチーム順に表示したい。

お世話になっております。
現在php+mysqlで動的なサイトを作っています。

あるスポーツのチームの所属人数順に表示したいのですが、元データが次のようになっています。

memberid,name,teamno
1,すずきさん,A
2,いとうさん,B
3,きむらさん,A
4,いしださん,C
5,おかださん,A
6,よしださん,C

ボクが欲しいのは・・・
A
C
B
と並んだ結果と、それぞれの数値、
A,3
C,2
B,1
という情報です。

GROUP関数やCOUNT関数、ORDER BYをいろいろこねくり回してやってみましたが・・・全く希望の結果が得られませんでした。

どなたかお教え下さいませんでしょうか?
お手数をお掛け致しますが、宜しくお願い致します。

投稿日時 - 2006-09-29 18:23:47

QNo.2439807

困ってます

質問者が選んだベストアンサー

#2を実行すると
teamno count
A    3
C    2
B    1
と表示されませんか?
「グループ毎のカウント数」はcountフィールドの値ですが、
そういうことを聞きたいのではないのでしょうか?

まさかとは思いますが、カンマつなぎで1フィールドで
表示したいというのであれば
SELECT concat(teamno,',',count(*)) as data,count(*) as count FROM `テーブル名` group by teamno order by count desc
とでもすればよいでしょうけど・・・

投稿日時 - 2006-09-29 23:10:39

ANo.3

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

SELECT teamno,count(*) as count FROM `テーブル`
group by teamno order by count desc

投稿日時 - 2006-09-29 21:20:43

お礼

ご回答有難う御座います。
意外とシンプルで・・・あれ??という感じでした。

さて、ランク順にはなったのですが、それぞれのグループ毎のカウント数はどのようにして出せるのでしょうか?

お手数をおかけ致しますが、引き続きお願いいたします。

投稿日時 - 2006-09-29 22:45:16

ANo.1

こんな感じでしょうか

select teamno, count(teamno) from table_name
group by teamno order by count(teamno) desc

投稿日時 - 2006-09-29 18:37:25

お礼

意外とシンプルでびっくりしました・・・。
なにをやっていたんだろう・・・という感じでした。
ありがとうございました。
もう1つ補足質問がありますので、上記をごらんいただけませんでしょうか?

投稿日時 - 2006-09-29 22:44:01

あなたにオススメの質問