- ベストアンサー
コンマ区切りのデータを数える
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 という表を表示したいのですが、可能ですか?
- みんなの回答 (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;
お礼
ありがとうございます。 基本がなっていなかったようで、非常によくわかりました。 データの入れ方をちゃんとしたときのカンマ区切り表示も 教えて下さって非常に助かります。 ありがとうございました。