select name,SUM(kingak) from where date between 150221 and 150320 group by frjpc.trcd
のようにSUMで集計を行うSQLを発行する時に,同時にkingak順にsortすることは可能なのでしょうか?
select name,SUM(kingak) from where date between 150221 and 150320 group by frjpc.trcd order by SUM(kingak)
としたいところですが,これではエラーになりますね。
SQLでは解決できないんでしょうか?
RDBMSは何でしょうか?
下記のようにするとうまくいくかもしれません。
SELECT TMP.name, TMP.SUM_KINGAK
FROM (
SELECT name, SUM(kingak) SUM_KINGAK
FROM ...
WHERE ....
) TMP
ORDER BY SUM_KINGAK
質問者
補足
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」となります。何がまずいんでしょうか。
できます。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」となります。何がまずいんでしょうか。