アプリ版:「スタンプのみでお礼する」機能のリリースについて

グループ化した結果のレコード数を取得する方法はないでしょうか?

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件あることを取得する方法がわかりません。できないでしょうか?

A 回答 (2件)

select Name, count(*), sum(Price) from odr.テーブルm


group by Name
order by Name

countでレコード数を取得できるはずです。

この回答への補足

上記のSQLだと、count(*) の値は Aの行に3、Bの行に2と入るだけではないでしょうか?

上記のSQL文でもいいのですが、SQL文の実行結果が何レコード取得できるのか知りたいのです。

上記の場合だと”2”を取得したいです。
無理でしょうか

補足日時:2004/06/15 13:03
    • good
    • 0

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で置き換えることができ、とてもわかりやすくなります。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す