我试图在sql中获得两列的总数,如下所示
SELECT sum(aaanum) aaa, sum(bbbnum) bbb, sum(aaa+bbb) ccc
FROM myTable;
但是,当我这样做时,我会在“字段列表”中未知列'aaa'
当我这样做时,我得到了我期望的结果
SELECT sum(aaanum) aaa, sum(bbbnum) bbb, sum(aaanum+bbbnum) ccc
FROM myTable;
但是我想像我在第一个例子中那样做,因为我为示例代码添加的内容非常简单我希望能够将它应用于更复杂的示例而不需要重复,因为这将是如果做出任何改变,我很难维持,我将不得不在两个地方进行更改。
这样做的最佳方式是什么?
答案 0 :(得分:2)
您可以获得的最接近的查询是查询:
SELECT
aaa,
bbb,
aaa+bbb ccc
FROM (
SELECT
sum(aaanum) aaa,
sum(bbbnum) bbb
FROM myTable
) x
FYI末尾的“x”是内部查询结果的别名,它需要在语法上正确。
答案 1 :(得分:0)
你可以这样做
Select a, b, sum(a+b)
from (select sum(aaanum) a, sum(bbbnum)
from mytable)
group by a, b
只需要在子选择中首先计算总和。