2017-05-02 12 views
0

合計ここにSQL SUM関数の質問があります。だから、私はそれを期待通りにSUM関数自体は動作します:各IDについてSQL SUM関数を追加した

select ID, sum(amount) 
from table1 
group by ID 

ありますいくつかのレコードと私の目標は、次の列が私のコラム量をまとめた量を与えるだろう1行に各IDを要約することです。

これはうまくいきますが、要約額フィールドの特定の条件に基づいて除外する必要があります。私。要約された金額が大きい、小さい、または特定の数の間でのみ結果を探します。

これは私が苦労している部分です。これは、AMOUNT列を使用しているように見えません。

集計結果の列名は「00002」と表示されますが、>/<節でこれを使用するとどちらも機能しません。この試みた:

select ID, sum(amount) 
from table1 
where 00002 > 1000 
group by ID 

エラーメッセージ、ちょうど空白の結果、エンジンの上にデータベースが稼働残念ながらわからない

1000を超える値でまとめた結果をしかし多くが、しかし、それはいくつかのIBM-てはなりませんベースの製品です。

+1

'where'の代わりに' having'節を使用します。 –

+0

は、エイリアスを列名として使用します。そして、前述のように、集約列操作を使用する必要があります。 '合計値(amount)='ある値 'を持つIDによるテーブル1グループからのsum_amountとしてのID、合計(金額)の選択 – Utsav

+1

2が決して> 1000ではない... – jarlh

答えて

1

句を集計する前に条件と一致しない個々の行をフィルタリングします。

投稿集約フィルタリングを実行する場合は、HAVING句を使用する必要があります。

HAVINGは、グループ化された後の結果にフィルタを適用します。

select ID, sum(amount) 
from table1 
group by ID 
having sum(amount) > 1000