- ベストアンサー
件数を取得する方法
グループ化した結果のレコード数を取得する方法はないでしょうか? No,Name,Price 1, A, 100 2, A, 200 3, B, 150 4, A, 100 5, B, 150 このようなデータがあるとき、 Nameでグループ化、Priceの合計金額を取得すると A,400 B,300 と取得できるのですが、結果が2件あることを取得する方法がわかりません。できないでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
noname#86752
回答No.2
SQL Serverのバージョンにもよりますが、以下のようなSQLができるはずです。 テーブルをAとします。 select count(*) from (select count(*) from A group by Name) as AA これはselect count(*) from A group by Nameで取得される内容を仮想的なテーブルAAとして、それをさらにcount(*)しています。 試せる環境がないのですが、1年ほど前に調べたときにSQL Server、Oracle、PostgreSQLで上記のようなSQLが実行できたと思います。 right/left joinなどを使った複雑なSQLは全て上記方法のSQLで置き換えることができ、とてもわかりやすくなります。
その他の回答 (1)
- O_cyan
- ベストアンサー率59% (745/1260)
回答No.1
select Name, count(*), sum(Price) from odr.テーブルm group by Name order by Name countでレコード数を取得できるはずです。
補足
上記のSQLだと、count(*) の値は Aの行に3、Bの行に2と入るだけではないでしょうか? 上記のSQL文でもいいのですが、SQL文の実行結果が何レコード取得できるのか知りたいのです。 上記の場合だと”2”を取得したいです。 無理でしょうか