SQL题目及思路(11-15) 牛客网

题目:

11.获取所有员工当前的manager,如果当前的manager是自己的话结果不显示,当前表示to_date='9999-01-01'。
结果第一列给出当前员工的emp_no,第二列给出其manager对应的manager_no。

select d.emp_no,e.emp_no as manager_no
from dept_emp d,dept_manager e
where d.dept_no=e.dept_no
and d.to_date='9999-01-01'
and e.to_date='9999-01-01'
and d.emp_no != e.emp_no

12.获取所有部门中当前员工薪水最高的相关信息,给出dept_no, emp_no以及其对应的salary

SELECT d.dept_no,d.emp_no,MAX(s.salary) AS salary  //max(salary)得到最高的薪水
FROM salaries AS s inner join dept_emp AS d    //将salaries表和dept_emp表做内部连接,联系两个表之间有关系的记录。
ON d.emp_no=s.emp_no
WHERE d.to_date='9999-01-01' AND s.to_date='9999-01-01'//筛选当前信息
GROUP BY d.dept_no    //group by 往往在筛选之后进行分组,根据部门dept_no进行分组

13.从titles表获取按照title进行分组,每组个数大于等于2,给出title以及对应的数目t。

select title,count(title)as t
from titles
group by title   //按照title进行分组
having count(title)>=2 //每组个数大于等于2

14.从titles表获取按照title进行分组,每组个数大于等于2,给出title以及对应的数目t。注意对于重复的emp_no进行忽略。

思路同第13题一样,唯一不同的地方是count(distinct emp_no)

15.查找employees表所有emp_no为奇数,且last_name不为Mary的员工信息,并按照hire_date逆序排列

select * from employees
where last_name != 'Mary'
and emp_no%2 != 0
order by hire_date desc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值