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 ??

上面会产生一个错误,因为 sum 不是表格的一部分。任何解决方法来限制/限制结果的条件仅在两列总和的条件下返回?(无需在表格中添加第三列)

谢谢

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 回答