• ベストアンサー

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

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 という表を表示したいのですが、可能ですか?

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

できないとは言わないけど、普通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;

cern5100
質問者

お礼

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

関連するQ&A