桌子:
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 不是表格的一部分。任何解决方法来限制/限制结果的条件仅在两列总和的条件下返回?(无需在表格中添加第三列)
谢谢
我相信您正在寻找该HAVING条款。
所以,
SELECT (SUM(c1)+SUM(C2)) AS sum FROM mytable HAVING sum > 100;
您可以将现有查询包装在另一个选择中:
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
这个答案与艾哈迈德的评论有关:
SELECT (c1+c2) AS sum FROM mytable WHERE ID > 5 GROUP BY ID HAVING sum > 100;