0
我想創建一個sql查詢,它將返回出現在兩個表之間的最小的id,但是我不斷收到錯誤HAVING MIN(COUNT(E.C_SE_ID))
。甲骨文表示,按功能分組嵌套得太深了。 我想不出另一種方式在s_id
和c_se_id
鏈接報名表返回C_SE_ID
SQL組函數嵌套太深
SELECT CS.C_SE_ID, MIN(COUNT(E.C_SE_ID))
FROM COURSE_SECTION CS, ENROLLMENT E, LOCATION L
WHERE CS.C_SE_ID=E.C_SE_ID
AND CS.LOC_ID=L.LOC_ID
AND L.BLDG_CODE='DBW'
GROUP BY CS.C_SE_ID
HAVING MIN(COUNT(E.C_SE_ID));
的,我試圖獲取有關該c_se_id
所有s_id
。與更新後的查詢oracle不喜歡select *
(顯而易見的原因),但當我也改變它e.c_Se_id
我什麼都沒有。要做到這一點
SELECT E.S_ID
FROM COURSE_SECTION CS, ENROLLMENT E
WHERE CS.C_SE_ID=E.C_SE_ID
AND E.C_SE_ID =(
select *
from (select CS.C_SE_ID, count(*) as cnt,
max(count(*)) over (partition by cs.c_se_id) as maxcnt
from COURSE_SECTION CS join
ENROLLMENT E
on CS.C_SE_ID=E.C_SE_ID join
LOCATION L
on CS.LOC_ID=L.LOC_ID
where L.BLDG_CODE='DBW'
GROUP BY CS.C_SE_ID
order by count(*) desc
) t
where cnt = maxcnt);
有三個值應該返回,但它只返回1值? – user1393064
對不起,打擾你,但這是用於嵌套子查詢和它的拋出錯誤,因爲*返回太多的值。我會用所有相關信息更新這個問題 – user1393064