1

テーブル:

id | c1  | c2
-------------    
1  | 10 | 20
2  | 55 | 20
3  | 30 | 30
4  | 11 | 80
5  | 12 | 20

とクエリ

select (sum(c1)+sum(c2))as sum from mytable where sum > 100 ??

上記は、テーブルの一部ではない合計としてエラーを生成します。結果を制限する条件/結果を制限する回避策は、2つの列の合計のこの条件でのみ返されますか? (テーブルに 3 番目の列を追加する必要はありません)

ありがとうございました

4

3 に答える 3

4

HAVING私はあなたが条項を探していると信じています。

そう、

SELECT (SUM(c1)+SUM(C2)) AS sum FROM mytable HAVING sum > 100;
于 2013-06-24T17:05:41.790 に答える
2

既存のクエリを別の選択でラップすることができます。

select total
from
(
  select sum(c1 + c2) as total 
  from mytable 
) d
where total > 100;

または、HAVING 句を使用できます。

select sum(c1 + c2) as total 
from mytable 
having sum(c1 + c2) > 100;  -- you can also use the total alias in the having

SQL Fiddle with Demoを参照してください。

于 2013-06-24T17:06:06.327 に答える
1

この回答は、アーメドのコメントに関連しています。

SELECT (c1+c2) AS sum FROM mytable WHERE ID > 5  GROUP BY ID HAVING sum > 100;
于 2013-06-24T17:47:18.050 に答える