c********w 发帖数: 308 | 1 面彭博社问的。应该挺简单。但多年不用了。傻逼了。。。
employee table
id name department manager_id
101 John A null
102 Dan A 101
103 ... ... ...
找出手下有至少10人的manager。 小印说用join |
I*****m 发帖数: 184 | 2 Join啥?group by manager不行吗? |
c********w 发帖数: 308 | 3 我当是弄了个嵌套的。。也对吧? 但呀说join
select name
from employee
where manager_id IN
{
select manager_id
from employee
where manager_id NOT NULL
group by manager_id
having count(*) >= 10
} |
r******e 发帖数: 1 | 4 id name department manager_id
101 John A null
102 Dan A 101
103 David A 102
David算不算John的手下? |
J****R 发帖数: 373 | 5 他应该是想让你self join, 然后group by。
【在 c********w 的大作中提到】 : 面彭博社问的。应该挺简单。但多年不用了。傻逼了。。。 : employee table : id name department manager_id : 101 John A null : 102 Dan A 101 : 103 ... ... ... : 找出手下有至少10人的manager。 小印说用join
|
J****R 发帖数: 373 | 6 他应该是想让你self join, 然后group by mgr name
【在 c********w 的大作中提到】 : 面彭博社问的。应该挺简单。但多年不用了。傻逼了。。。 : employee table : id name department manager_id : 101 John A null : 102 Dan A 101 : 103 ... ... ... : 找出手下有至少10人的manager。 小印说用join
|
b******u 发帖数: 81 | |
g*c 发帖数: 4510 | 8 select
b.name
from employee a, employee b
where a.manager_id=b.id
group by b.name
having count(*)>10 |
S****M 发帖数: 2198 | 9 得用recursive吧,手下十个人不是direct report十个人吧
【在 c********w 的大作中提到】 : 面彭博社问的。应该挺简单。但多年不用了。傻逼了。。。 : employee table : id name department manager_id : 101 John A null : 102 Dan A 101 : 103 ... ... ... : 找出手下有至少10人的manager。 小印说用join
|