あなたの「必」の書き順を教えてください

MySQLにてCOUNTした値を、更にCOUNTする事を1回のSQLにて実行する事は可能でしょうか?
※2回のSQL、プログラミングを介する、EXCELで再集計する等でならCOUNTのCOUNTは求められるのですが…1回のSQLでの回答お願いします。

ユーザーIDと課金額のカラムからなる、以下のようなテーブルがあるとします。

buyテーブル
user_id,coin
1,100
5,100
10,200
5,200
5,200
17,100
1,100
2,200
23,500

ユーザー毎の課金回数は下記にて求められますが、
SELECT user_id,COUNT(coin) FROM buy GROUP BY id

user_id,count(coin)
1,2
2,1
5,3
10,1
17,1
23,1

count(coin)毎の人数というのはどのように求めればいいでしょうか?
いわば下記のような集計結果が理想です。
※このような結果を1回のSQLにて出力するSQLをズバリ今回の例に沿って知りたいです。

count(coin),count(count(coin))
1,4
2,1
3,1

■環境
Apache2
MySQL5
PHP5

ご教授よろしくお願いします。

A 回答 (2件)

こんなかんじでしょうか



SELECT ccoin, count(ccoin) FROM ( SELECT user_id, COUNT(coin) as ccoin FROM buy GROUP BY user_id ) as a GROUP BY ccoin;
    • good
    • 1
この回答へのお礼

ご回答ありがとうございました。

実際のテーブルは、
カラム数12
レコード数約100万
ですが、
問題ありませんでした。

お礼日時:2012/09/13 12:18

SELECT count_coin, COUNT(*)


FROM (SELECT user_id,COUNT(coin) count_coin FROM buy GROUP BY user_id) t
GROUP BY count_coin;

でどうでしょうか?
もしかして、これは2回のSQLということになってしまうのでしょうか・・・
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。

実際のテーブルは、
カラム数12
レコード数約100万
ですが、
問題ありませんでした。

こちらにもポイントをあげたいのですが、あげれないようです…
(昔は次点とかあったように思うのですが)

お礼日時:2012/09/13 12:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す


おすすめ情報