こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

SQLの書き方を教えて!

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では解決できないんでしょうか?

投稿日時 - 2003-03-07 15:47:12

QNo.491809

すぐに回答ほしいです

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

RDBMSは何でしょうか?

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

投稿日時 - 2003-03-07 16:27:31

補足

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

投稿日時 - 2003-03-07 17:44:25

ANo.3

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

試してないので自信ないですが、これでどうでしょう?

select trcd,SUM(kingak)
from frjpc
where date between 150121 and 150125
group by trcd
order by kingak;

投稿日時 - 2003-03-07 23:23:32

ANo.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)
こんな感じで。

投稿日時 - 2003-03-07 16:26:56

補足

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

投稿日時 - 2003-03-07 17:47:52

ANo.1

frjpc.trcdって、どこから出てきたんでしょう (^^;

select name,SUM(kingak) from テーブル
where date between 150221 and 150320
group by name
order by SUM(kingak);

で検索できると思いますよ。

投稿日時 - 2003-03-07 16:24:02

補足

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

投稿日時 - 2003-03-07 17:48:29

あなたにオススメの質問