在SQL中对子查询的结果进行分组

时间:2014-10-20 16:00:05

标签: sql oracle

我有一个查询,它使用子查询获取结果。我正在尝试使用group by获取其中一个列的不同值,并且我正在收到错误

ORA-01791: not a SELECTed expression

我的SQL查询看起来像

select distinct myCol from (
  select dbCol as myCol from someTable where <someCondition>
  unionall
  <some other sql>
) group by myCol;

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

修复unionall后,您的查询应该没问题。我会把它写成:

select myCol
from ((select dbCol as myCol
       from someTable
       where <someCondition>
      ) union all
      (<some other sql>)
     ) t
group by myCol;

请注意,distinct group by不需要select。如果您的group by只有一列,则其中一种情况可以正常。 {{1}}具有更多功能。