- 締切済み
group by したものをsumしたのですが方法がわかりません。
ある情報をgroup byしその数をcountし、そのcountした数をsumしたのですがどのようにすればよろしいでしょうか? 例えば DB名 test a | ------ ABA | A | AA | ABA | select a,count(*) count from test group by a; a |count| ------------- ABA | 2 | A | 1 | AA | 1 | このカウントの数字を一回でsumすることは可能でしょうか? 宜しくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- tomo197608
- ベストアンサー率14% (3/21)
例題通りだと、 先にお答えしてくれている方のが効率的ですが、 他に条件等絡み条件が複雑で、 >ある情報をgroup byしその数をcountし、そのcountした数をsumしたのですがどのようにすればよろしいでしょうか? との文面通りだとしたら、 サブクエリとか利用したらどうですか? SELECT SUM(TAB01.CNT) AS SUMA FROM (SELECT A,COUNT(A) AS CNT FROM test GROUP BY A ) TAB01; といった感じではどうですか?
- don9don9
- ベストアンサー率47% (299/624)
例でいうとABAが2件、Aが1件、AAが1件の合計の「4」 を返したいのであれば、グループ化しなければいいだけの話です。 select count(*) count from test
補足
早速の回答ありがとうございます。 質問の仕方をまちがっておりました。 そして普通に目的の答えを出すことが出来ました。 ご迷惑おかけしました。 ありがとうございます。
- shiranuik
- ベストアンサー率71% (10/14)
例にあります、Count(*)列の数値[2,1,1]をSumするという理解で正しいでしょうか? それでしたら単純に、 select Sum(a) from test; で項目aの総数がでると思うのですが…。 私の理解不足でしたら申し訳ございません。
補足
早速の回答ありがとうございます。 私の書き方に誤りがあったので訂正させていただきます。 正しくはgroup byしたものをカウントしたいので、最終的には上記例の場合3(ABA,A,AA)が返って欲しいんです。 要は重複のないように出したかったんです。 もうしわけございませんでした。
補足
回答ありがとうございました。 私の質問の仕方が間違っておりました。 重複せずに値の数(上記例の場合3)を返したかったのですが…。