题目:
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