• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SQLの書き方を教えて!)

SQLでのSUMとSORTの同時利用

このQ&Aのポイント
  • SQLでSUMとSORTを同時に利用する方法について教えてください。
  • 例えば、SUMで集計した結果をkingak順にソートすることは可能なのでしょうか?現在の方法ではエラーになってしまいます。
  • SQLではこのような問題を解決する方法はあるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • yuji
  • ベストアンサー率37% (64/169)
回答No.3

RDBMSは何でしょうか? 下記のようにするとうまくいくかもしれません。 SELECT TMP.name, TMP.SUM_KINGAK FROM ( SELECT name, SUM(kingak) SUM_KINGAK FROM ... WHERE .... ) TMP ORDER BY SUM_KINGAK

elwin
質問者

補足

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」となります。何がまずいんでしょうか。

その他の回答 (3)

  • bourbon
  • ベストアンサー率46% (18/39)
回答No.4

試してないので自信ないですが、これでどうでしょう? select trcd,SUM(kingak) from frjpc where date between 150121 and 150125 group by trcd order by kingak;

  • Mizyu
  • ベストアンサー率41% (245/593)
回答No.2

できます。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) こんな感じで。

elwin
質問者

補足

指摘のように、質問で書いた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」となります。何がまずいんでしょうか。

noname#89342
noname#89342
回答No.1

frjpc.trcdって、どこから出てきたんでしょう (^^; select name,SUM(kingak) from テーブル where date between 150221 and 150320 group by name order by SUM(kingak); で検索できると思いますよ。

elwin
質問者

補足

指摘のように、質問で書いた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」となります。何がまずいんでしょうか。

関連するQ&A