• ベストアンサー

特定の列だけをGROUP BYしたい時

いつもお世話になっております。 ID列をGROUP BYしてCOUNTしたいのですが 氏名列に入っている値がバラバラなので GROUP BYで思う様に出来ない状態です。 条件から氏名列を外すと当然無効と言われます、 どのように回避すればうまく行くのでしょうか? SELECT 氏名列,ID列,COUNT(カウント列) FROM テーブルA WHERE ID列 IN (1,2,3) GROUP BY ID列,氏名列

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

  • ベストアンサー
  • utakataXEX
  • ベストアンサー率69% (711/1018)
回答No.2

何か質問自体が矛盾しているような。 氏名を含めた詳細行に、ID単位のカウントを付けたい、 と言う事ならこんな感じです。 SELECT m.氏名列,m.ID列,g.cnt FROM テーブルA m LEFT JOIN (SELECT ID列,COUNT(*) as cnt FROM テーブルA WHERE ID列 IN (1,2,3) GROUP BY ID列) g ON m.ID列 = g.ID列 求めている答えと違う場合は、データの内容の例と 期待する結果の例を書いてください。

その他の回答 (1)

回答No.1

ID列ごとのレコード件数を取得するだけなら、 以下でできると思いますが、いかがでしょうか? SELECT ID列, COUNT(ID列) FROM テーブルA WHERE ID列 IN (1,2,3) GROUP BY ID列

関連するQ&A