我正在尝试创建一个 sql 查询,该查询将返回出现在两个表之间的 id 的最小出现,但是我不断收到该行的错误HAVING MIN(COUNT(E.C_SE_ID))
。Oracle 说按功能分组的嵌套太深。我想不出另一种返回方式 C_SE_ID
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));
在招生表中s_id
并c_se_id
已链接,我正在尝试获取与s_id
此相关的所有内容c_se_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);