- ベストアンサー
SQLでのSUMとSORTの同時利用
- SQLでSUMとSORTを同時に利用する方法について教えてください。
- 例えば、SUMで集計した結果をkingak順にソートすることは可能なのでしょうか?現在の方法ではエラーになってしまいます。
- SQLではこのような問題を解決する方法はあるのでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
RDBMSは何でしょうか? 下記のようにするとうまくいくかもしれません。 SELECT TMP.name, TMP.SUM_KINGAK FROM ( SELECT name, SUM(kingak) SUM_KINGAK FROM ... WHERE .... ) TMP ORDER BY SUM_KINGAK
その他の回答 (3)
- bourbon
- ベストアンサー率46% (18/39)
試してないので自信ないですが、これでどうでしょう? select trcd,SUM(kingak) from frjpc where date between 150121 and 150125 group by trcd order by kingak;
- Mizyu
- ベストアンサー率41% (245/593)
できます。group by の後にorder by です。 > select name,SUM(kingak) from where date between 150221 and 150320 group by frjpc.trcd ただ、このSQLでエラーは出ないのですか? from句配下のテーブル名が無いですよ。 また、この場合、group by するのはnameじゃないでしょうか?各nameごとの合計ですよね? select name,SUM(kingak) from TABLE where date between 150221 and 150320 group by name order by SUM(kingak) こんな感じで。
補足
指摘のように、質問で書いたSQLは間違っていますね。あらためて select trcd,SUM(kingak) from frjpc where date between 150121 and 150125 group by trcd order by SUM(kingak); で試しましたが「ERROR 1111: Invalid use of group function」となります。何がまずいんでしょうか。
frjpc.trcdって、どこから出てきたんでしょう (^^; select name,SUM(kingak) from テーブル where date between 150221 and 150320 group by name order by SUM(kingak); で検索できると思いますよ。
補足
指摘のように、質問で書いたSQLは間違っていますね。あらためて select trcd,SUM(kingak) from frjpc where date between 150121 and 150125 group by trcd order by SUM(kingak); で試しましたが「ERROR 1111: Invalid use of group function」となります。何がまずいんでしょうか。
補足
MySQL 3.23.53を使っています。 他の方にもご指摘いただきましたが、質問で書いたSQLは間違っていますね。あらためて select trcd,SUM(kingak) from frjpc where date between 150121 and 150125 group by trcd order by SUM(kingak); で試しましたが「ERROR 1111: Invalid use of group function」となります。何がまずいんでしょうか。