2014-10-20 5 views
0

하위 쿼리를 사용하여 결과를 얻는 쿼리가 있습니다. 나는 점점 오전에 의해 나는 오류에 의해 그룹을 사용하여 열 중 하나에 대해 별개의 값을 얻으려고 노력과 별개입니다SQL의 하위 쿼리 결과 그룹화

ORA-01791: not a SELECTed expression 

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

어떤 제안처럼 내 SQL 쿼리 모습?

+0

왜 고유 한 열을 선택한 다음 그룹별로 그룹화합니까? distinct를 선택하면 하나의 행만 반환되므로 그룹화 할 것이 없습니다. – AdamMc331

+0

실제로 사용중인 코드와 수행하려는 코드를 게시하십시오. 게시 한 내용으로 인해 많은 오류가 발생합니다. 예를 들어,'union all'은 하나가 아닌 두 단어입니다. – paqogomez

+0

제 제안은 group by 절을 제거하는 것입니다. –

답변

1

unionall을 수정하면 쿼리가 잘됩니다. 당신이 group bydistinct 필요하지 않습니다

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

참고 : 나는로 작성합니다. select에 열이 하나만 있으면 둘 중 하나가 문제가되지 않습니다. group by에는 더 많은 기능이 있습니다.