[英]Using Sub-queries with comparison - Oracle
我一直試圖將結果操縱到這三個查詢中,但我不知道我在做什么錯
列出參加少於三個小組的所有學術成員。
列出最大組數領先的學術ID
使用此查詢(第一部分)
SELECT a.ID , min(a.name) as Name
FROM Academic a , researchGroup r
WHERE count(r.managerID)>3
GROUP BY a.ID;
但它似乎不起作用。
我有這個關系模式
researchGroup(name (P.R Key Composite) , codeD , mainResearchArea , managerID /* forgien key with AcademicStaff(ID) */ , labID (P.R Key Composite) )
AcademicStaff(ID {PR KEY} , name)
任何解決方案?
以下將為您提供一份學者名單和管理的研究小組的數量:
SELECT
*
FROM
(
SELECT
ac.ID AS academic_id
,MAX(ac.name) AS academic_name
,COUNT(rg.managerID) AS num_groups_managed
,DENSE_RANK() OVER (ORDER BY COUNT(rg.managerID) DESC) AS academic_rank
FROM
Academic AS ac
INNER JOIN
researchGroup AS rg
ON (rg.managerID = ac.ID)
GROUP BY
ac.ID
) AS subquery
WHERE
--** uncomment the following line for the academics managing above 3 groups
--num_groups_managed >= 3
--** or uncomment the following line for the top-ranked academics (there could be more than 1)
--academic_rank = 1
ORDER BY
academic_rank ASC
,academic_name ASC
取消注釋 WHERE 子句的相關部分將為您提供所需的結果。
順便說一句,自從我使用 Oracle SQL 已經有一段時間了,所以請原諒任何小的語法錯誤(特別是,我不記得 Oracle 是否接受表名后的關鍵字AS
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.