2014-10-20 59 views
0

我有一個查詢使我得到結果使用子查詢。我試圖讓不同的值利用分組列之一,並通過不同的我得到錯誤從SQL中的子查詢分組結果

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; 

什麼建議嗎?

+0

爲什麼你選擇一個不同的列,然後按它分組?如果你選擇不同的,只有一行將被返回,所以沒有任何東西可以分組。 – AdamMc331 2014-10-20 16:02:46

+0

請發佈您實際使用的代碼以及您正在嘗試做的事情。你發佈的內容會導致很多錯誤。例如'union all'是兩個詞,而不是一個。 – paqogomez 2014-10-20 16:05:23

+0

我的建議是帶走小組。 – 2014-10-20 16:07:44

回答

1

您的查詢應該沒問題,一旦您修復了unionall。我將它寫成:

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

注意,你不需要distinctgroup by。如果你的select只有一列,那麼其中一個很好。 group by具有更多功能。