【问题标题】:Select * from subquery从子查询中选择 *
【发布时间】:2012-02-13 06:17:23
【问题描述】:

我想得到 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
)

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

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

【问题讨论】:

  • SELECT SUM(col1) AS a, SUM(col2) AS b, SUM(col1) + SUM(col2) AS total_sum FROM table?

标签: sql oracle


【解决方案1】:

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

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

【讨论】:

  • 也适用于 DB2
猜你喜欢
  • 2019-04-04
  • 2014-11-23
  • 2021-11-25
  • 1970-01-01
  • 1970-01-01
  • 2014-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多