- ベストアンサー
特定の列だけをGROUP BYしたい時
いつもお世話になっております。 ID列をGROUP BYしてCOUNTしたいのですが 氏名列に入っている値がバラバラなので GROUP BYで思う様に出来ない状態です。 条件から氏名列を外すと当然無効と言われます、 どのように回避すればうまく行くのでしょうか? SELECT 氏名列,ID列,COUNT(カウント列) FROM テーブルA WHERE ID列 IN (1,2,3) GROUP BY ID列,氏名列
- みんなの回答 (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)
- rotesKomet
- ベストアンサー率31% (83/265)
回答No.1
ID列ごとのレコード件数を取得するだけなら、 以下でできると思いますが、いかがでしょうか? SELECT ID列, COUNT(ID列) FROM テーブルA WHERE ID列 IN (1,2,3) GROUP BY ID列