快速背景 - 我需要找出通過我們公司實驗室按案例類型和月份分組的案例的終止率。到目前爲止,我想出了這個:在使用Oracle的子查詢中出現奇怪的'GROUP BY'錯誤
SELECT BPI.TYPE,
EXTRACT(MONTH FROM CS.RECEIVED_DATE) MONTH,
COUNT(*) termed_cases
FROM CELL_SOURCE cs
JOIN BASIC_PATHOLOGY_INFO bpi ON CS.CELL_SOURCE_ID = BPI.CELL_SOURCE_ID
JOIN RECENT_CELL_SOURCE_STATUS rcss ON CS.CELL_SOURCE_ID = RCSS.CELL_SOURCE_ID
WHERE type IS NOT NULL
AND CS.RECEIVED_DATE > to_date('03/01/2011', 'MM/DD/YYYY/')
AND RCSS.STATUS like 'Term%'
GROUP BY BPI.TYPE, EXTRACT(MONTH FROM CS.RECEIVED_DATE)
ORDER BY month, type
這找到所有已被稱爲,很容易的情況。但是,當我想要查找費率時,我遇到了一些問題。我試圖用一個子查詢捉每類案件的總量不管它的地位,因爲這樣的:
COUNT(*)/(SELECT COUNT(*)
FROM CELL_SOURCE cs_1
JOIN BASIC_PATHOLOGY_INFO bpi_1 ON CS_1.CELL_SOURCE_ID = BPI_1.CELL_SOURCE_ID
WHERE BPI_1.TYPE = BPI.TYPE
AND EXTRACT(month from CS_1.RECEIVED_DATE) = EXTRACT(MONTH FROM CS.RECEIVED_DATE)) termed_cases
然而,這引發ORA-00979: not a GROUP BY expression
錯誤,並從子查詢凸顯BPI.TYPE
。
任何人都知道我的錯誤實際上可能是什麼?此外,分析函數在這裏比集合函數更好嗎?
您需要按子查詢中的BPI_1.TYPE進行分組 – reggie 2011-05-26 14:47:42
select子句中的「BPI.TYPE」是否真的應該是「BPI.TUMOR_TYPE」,就像您在組中所做的一樣? – Craig 2011-05-26 14:49:01
對不起,只是輸入。腫瘤類型完全不同 - 弗洛伊德錯誤 – ryebr3ad 2011-05-26 14:54:07