2012-01-18 177 views
50

我想獲得column1的總和,column2的總和和總和。在Postgres的我能做到這樣:(注意星)從子查詢中選擇*

SELECT *, a+b AS total_sum FROM 
(
    SELECT SUM(column1) AS a, SUM(column2) AS b 
    FROM table 
) 

但在甲骨文,我得到一個語法錯誤並有能力使用這樣的:

SELECT a,b, a+b AS total_sum FROM 
(
    SELECT SUM(column1) AS a, SUM(column2) AS b 
    FROM table 
) 

我真的有很多的列返回,所以我不想在主查詢中再次寫列名。有沒有簡單的解決方案?

我不能在內部查詢中使用a + b,因爲這裏沒有已知的地方。 我不想使用SELECT SELECT SUM(column1) AS a, SUM(column2) AS b, SUM(column1)+SUM(column2) AS total_sum

+1

'SELECT SUM(COL1)爲A,SUM(COL2)爲B,SUM(COL1 )+ SUM(col2)AS total_sum FROM table'? – MatBailie 2012-01-18 14:43:45

回答

107

您可以通過別名它和*之前添加別名然後從子查詢中的每個列:

SELECT t.*, a+b AS total_sum 
FROM 
(
    SELECT SUM(column1) AS a, SUM(column2) AS b 
    FROM table 
) t