从子查询中select*

我想得到column1的总和,column2的总和和总和。 在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 ) 

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

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

您可以通过对该子查询进行别名并在*之前添加别名来select每个列。

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