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

解決済みの質問

コンマ区切りのデータを数える

id place
5 上野
6 銀座
7 銀座

これに対して
SELECT place,count(*)
FROM tb GROUP BY place
ORDER BY COUNT(*) DESC;
でplaceのvalueごとのランキング的なものを作成することはできたのですが

id place
5 上野
6 銀座,東京
7 銀座,上野
8 銀座

に対して
place COUNT(*)
銀座 3
上野 2
東京 1

という表を表示したいのですが、可能ですか?

投稿日時 - 2013-11-14 08:54:04

QNo.8346754

困ってます

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

できないとは言わないけど、普通SQLでそんなデータの持ち方はしません

こんな風にしてみて
//元データ
create table tb(id int,place varchar(20));
insert into tb values(5,'上野'),(6,'銀座'),(6,'東京'),(7,'銀座'),(7,'上野'),(8,'銀座');

//カンマ区切りの表示
select id,group_concat(place) as place from tb group by id;

//集計
select place,count(*) as count from tb group by place;

投稿日時 - 2013-11-14 09:26:31

お礼

ありがとうございます。
基本がなっていなかったようで、非常によくわかりました。
データの入れ方をちゃんとしたときのカンマ区切り表示も
教えて下さって非常に助かります。
ありがとうございました。

投稿日時 - 2013-11-14 12:50:14

ANo.1

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

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

回答(1)

あなたにオススメの質問