Leetcode_1076_1077项目员工

题目描述

  1. 编写一个SQL查询,报告所有雇员最多的项目。
    Leetcode_1076_1077项目员工_第1张图片

正确答案

select project_id
from Project
group by project_id
having count(distinct employee_id)>=    
	all(select count(distinct employee_id) from Project group by project_id)

知识点

  • ALL 父查询中的结果集大于子查询中每一个结果集中的值,则为真
  • ANY,SOME 父查询中的结果集大于子查询中任意一个结果集中的值,则为真
  • ANY 和 IN 效果相同
    • SELECT * FROM T2 WHERE N=ANY (SELECT N FROM T1)
    • SELECT * FROM T2 WHERE N IN (SELECT N FROM T1)

题目描述

  1. 写 一个 SQL 查询语句,报告在每一个项目中经验最丰富的雇员是谁。如果出现经验年数相同的情况,请报告所有具有最大经验年数的员工。

Leetcode_1076_1077项目员工_第2张图片

正确答案

select project_id,employee_id
from     
	(select p.project_id,p.employee_id,        
		rank() over(partition by p.project_id order by e.experience_years desc) as rank    
	from Project p    
	left join Employee e    
	on p.employee_id = e.employee_id) t 
where rank=1

你可能感兴趣的:(Leetcode_1076_1077项目员工)