从子查询中选择*

kar*_*rel 56 sql oracle

我想得到column1的总和,column2的总和和总和.在Postgres我可以这样做:( 注意明星)

SELECT *, a+b AS total_sum FROM
(
   SELECT SUM(column1) AS a, SUM(column2) AS b
   FROM table
)
Run Code Online (Sandbox Code Playgroud)

但是在Oracle中我遇到语法错误并且必须使用它:

SELECT a,b, a+b AS total_sum FROM
(
   SELECT SUM(column1) AS a, SUM(column2) AS b
   FROM table
)
Run Code Online (Sandbox Code Playgroud)

我有很多列要返回,所以我不想在主查询中再次写入列名.有没有简单的解决方案?

我不能在内部查询中使用+ b,因为在这个地方不知道.我不想用SELECT SELECT SUM(column1) AS a, SUM(column2) AS b, SUM(column1)+SUM(column2) AS total_sum.

Pet*_*ang 132

您可以通过别名来选择该子查询中的每一列,并在以下位置之前添加别名*:

SELECT t.*, a+b AS total_sum
FROM
(
   SELECT SUM(column1) AS a, SUM(column2) AS b
   FROM table
) t
Run Code Online (Sandbox Code Playgroud)