Employee 表包含所有員工和他們的經理。每個員工都有一個 Id,并且還有一列是經理的 Id。
+------+----------+-----------+----------+
|Id ? ?|Name ?? ? ?|Department |ManagerId |
+------+----------+-----------+----------+
|101 ? |John ?? ? ?|A ?? ? ? ? ?|null ? ? ?|
|102 ? |Dan ?? ? ?|A ?? ? ? ? ?|101 ? ? ? |
|103 ? |James ?? ? ?|A ?? ? ? ? ?|101 ? ? ? |
|104 ? |Amy ?? ? ?|A ?? ? ? ? ?|101 ? ? ? |
|105 ? |Anne ?? ? ?|A ?? ? ? ? ?|101 ? ? ? |
|106 ? |Ron ?? ? ?|B ?? ? ? ? ?|101 ? ? ? |
+------+----------+-----------+----------+
給定 Employee 表,請編寫一個SQL查詢來查找至少有5名直接下屬的經理。對于上表,您的SQL查詢應該返回:
+-------+
| Name ?|
+-------+
| John ?|
+-------+
注意:
沒有人是自己的下屬。
思路:對每一個員工,用嵌套查詢是否有五個下屬即可。
select a.Name
from Employee as a
where 5<=(select count(b.Id) from Employee as b where b.ManagerId=a.Id)
?