2011-10-16 60 views
-2

我有一個Oracle查詢,其中有東西的甲骨文擁有>單列

效果有計數(場)>(返回一行長SQL語句) 單獨的查詢工作的雙方,但我一起得到了「不是一個一組」的表達。

當一些它的工作原理更換長的SQL語句,但我認爲,如果只有一個返回一行兩人分別相當於?

編輯 做一些玩弄我意識到後:(含表A凡A.field = T.field長SQL語句) ...表筆......具有計數(場)> 它的工作原理當我與任何對T.field特定選項的替代T.field,但是當我引用T.field具體我「的表達不是一羣」

+4

你能發表您的查詢嗎?這對我的作品'SELECT DUMMY FROM雙GROUP BY DUMMY HAVING COUNT(虛擬)>(選擇1從雙);' –

+0

我不能發佈我的確切查詢,但我意識到我可能一直在尋找它的錯誤部分對於問題@Martin –

+0

解決。我的pre>聲明顯然需要在小組內使用T.field。我不確定爲什麼獨自工作,但不能彼此協作。 –

回答

0
SELECT ... 
FROM Table T ... 
GROUP BY T.afield 
HAVING Count(T.anotherfield) 
     > (Long SQL statement with Table A Where A.somefield = T.afield) 

應該工作正常。


SELECT ... 
FROM Table T ... 
GROUP BY T.anotherfield 
HAVING Count(T.anotherfield) 
     > (Long SQL statement with Table A WHERE A.somefield = T.afield) 

不應該工作。字段(如T.afield),其不包括在列表中GROUP BY,不能在SELECTHAVINGORDER BY條款被引用。只能引用該字段的集合函數 - 例如,您可能有WHERE A.somefield = MIN(T.afield)

1

當甲骨文解析查詢它不知道會得到相同的如果查詢將只返回一行或一堆行。因此,只需將group by your_column附加到查詢的末尾即可。

例如該查詢返回一行:

select count(*) from user_objects; 

但是,如果我希望包括沿SYSDATE,我會做

select 
    sysdate the_date, 
    count(*) 
from 
    user_objects 
group by 
    the_date; 
+1

我爲你格式化了你的代碼。這可以通過選擇您的代碼並按下「{}」按鈕來完成。 –