簡體   English   中英

使用子查詢進行比較 - Oracle

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM