2012-01-18 19 views
50

私は、column1、column2の合計と合計の合計を取得したいと思います。 (星に気づく)select * from subquery

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

をしかし、オラクルでは、私は構文エラーを取得し、これを使用する必要があります:Postgresのでは、私は、このようにそれを行うことができます

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

私は列の本当にたくさんあります返されるので、私はメインのクエリに再び列名を書きたくありません。簡単な解決法はありますか?

内側のクエリで+ bを使用することはできません。これは、この場所では認識できないためです。 SELECT SELECT SUM(column1) AS a, SUM(column2) AS b, SUM(column1)+SUM(column2) AS total_sumを使用したくありません。

+1

'SELECT SUM(COL1)、SUM(COL2)Bとして、SUM(COL1 AS )+ SUM(col2)AS total_sum FROM table'? – MatBailie

答えて

107

あなたはそれをエイリアシングと*前にエイリアスを追加することによって、そのサブクエリからすべての列を選択することができます。

SELECT t.*, a+b AS total_sum 
FROM 
(
    SELECT SUM(column1) AS a, SUM(column2) AS b 
    FROM table 
) t 
関連する問題