Выберите * из подзапроса

Я бы хотел получить сумму столбца1, сумму столбца2 и общую сумму. В Postgres я могу сделать это следующим образом: (обратите внимание на звезду)

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

Но в Oracle я получаю синтаксическую ошибку и должен использовать это:

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 t.*, a+b AS total_sum
FROM
(
   SELECT SUM(column1) AS a, SUM(column2) AS b
   FROM table
) t