• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:MySQL GROUP_CONCAT 個数を指定)

MySQL GROUP_CONCAT 個数を指定

このQ&Aのポイント
  • MySQLのGROUP_CONCAT関数を使用してデータをまとめることはできますが、個数を指定することはできません。
  • データ個数を指定するか、最大値に合わせる方法はありません。
  • 他の手法を使用する必要があります。

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

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

かなり強引ですがこんな感じ? //元データ create table hoge (id int,name varchar(20)); insert hoge values(1,'apple'),(1,'banana'),(2,'onion'),(2,'potato'),(2,'carrot'),(2,'radish'),(3,'beef'),(3,'chicken'),(3,'pork'); //集計 select id ,concat(group_concat(name) ,repeat(',NULL',(select max(c) from (select id,count(name) as c from hoge group by id) as sub)-count(name))) as name from hoge group by id; そもそも「NULL」を文字列として使用していいのか怪しいところ また例題のNULLの後ろにカンマがあったりなかったりブレがあるのが気になる ロジック的には、nameの最大件数を拾って、自分の件数との差だけ「,NULL」という 文字をつなげる・・・みたいなかんじ、 ただし思いつきを冗長にかいただけなのでもっと有効な方法があると思います

tokyor
質問者

お礼

お礼が遅れすみません。 こちらの方法をすこし改変して無事実現出来ました。 ありがとうございました。

関連するQ&A