簡體   English   中英

在子查詢中使用多個表

[英]Use multiple tables in sub queries

我需要顯示員工擁有的任務數量,但僅顯示任務數量最多的員工。 我的問題是,如果只有員工擁有最多的任務,我不知道如何顯示。

任務中包含任務數,員工通過employee_id與任務鏈接。

SELECT E.EMPLOYEE_ID, E.FIRST_NAME, E.LAST_NAME, 
COUNT(E.TASK_ID)NUMBER_OF_TASKS
 FROM EMPLOYEE E, TASK T
WHERE E.EMPLOYEE_ID = T.EMPLOYEE_ID
GROUP BY E.EMPLOYEE_ID, E.FIRST_NAME, E.LAST_NAME;

您可以使用窗口功能。 我可以這樣寫:

SELECT E.EMPLOYEE_ID, E.FIRST_NAME, E.LAST_NAME, T.NUMBER_OF_TASKS
FROM EMPLOYEE E JOIN
     (SELECT T.EMPLOYEE_ID, COUNT(*) as NUMBER_OF_TASKS,
             MAX(COUNT(*)) OVER () as MAX_NUMBER_OF_TASKS
      FROM TASK T
      GROUP BY T.EMPLOYEE_ID
     ) T
     ON E.EMPLOYEE_ID = T.EMPLOYEE_ID
WHERE t.NUMBER_OF_TASKS = t.MAX_NUMBER_OF_TASKS;

哦,還要注意使用正確,顯式, 標准的 JOIN語法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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