1. 查出至少有一个员工的部门。显示部门编号、部门名称、部门位置、部门人数。
SELECT
department.department_id,
department.department_name,
department.department_location,
COUNT(employee.employee_id) AS department_population
FROM
department
INNER JOIN
employee ON department.department_id = employee.department_id
GROUP BY
department.department_id
HAVING
COUNT(employee.employee_id) > 0;
2. 列出所有员工的姓名及其直接上级的姓名。
SELECT
employee.employee_name,
manager.employee_name AS manager_name
FROM
employee
LEFT JOIN
employee AS manager ON employee.manager_id = manager.employee_id;
3. 列出受雇日期早于直接上级的所有员工的编号、姓名、部门名称。
SELECT
e.employee_id,
e.employee_name,
d.department_name
FROM
employee e
INNER JOIN
department d ON e.department_id = d.department_id
WHERE
e.hire_date < (
SELECT
hire_date
FROM
employee
WHERE
employee_id = e.manager_id
);
4. 列出部门名称和这些部门的员工信息,同时列出那些没有员工的部门。
SELECT
department.department_name,
employee.employee_id,
employee.employee_name
FROM
department
LEFT JOIN
employee ON department.department_id = employee.department_id
ORDER BY
department.department_id, employee.employee_id;
5. 列出最低薪金大于15000的各种工作及从事此工作的员工人数。
SELECT
job_title,
COUNT(employee_id) AS number_of_employees
FROM
employee
JOIN
job ON employee.job_id = job.job_id
GROUP BY
job_title
HAVING
MIN(salary) > 15000;
6. 列出在销售部工作的员工的姓名,假定不知道销售部的部门编号。
SELECT
employee_name
FROM
employee
WHERE
department_id = (
SELECT
department_id
FROM
department
WHERE
department_name = '销售部'
);
7. 列出薪金高于公司平均薪金的所有员工信息,所在部门名称,上级领导,工资等级。
SELECT
employee.employee_id,
employee.employee_name,
department.department_name,
supervisor.employee_name AS supervisor_name,
salary.grade_level
FROM
employee
JOIN
department ON employee.department_id = department.department_id
JOIN
salary ON employee.job_id = salary.job_id
JOIN
employee AS supervisor ON employee.supervisor_id = supervisor.employee_id
WHERE
employee.salary > (SELECT AVG(salary) FROM employee)
ORDER BY
employee.employee_id;
8.列出与庞统从事相同工作的所有员工及部门名称。
9.列出薪金高于部门30工作的所有员工的薪金的员工姓名和薪金、部门名称。
SELECT
employee.employee_name,
employee.salary,
department.department_name
FROM
employee
JOIN
department ON employee.department_id = department.department_id
WHERE
employee.salary > (
SELECT
salary
FROM
employee
WHERE
department_id = 30
);
10.查出年份、利润、年度增长比。
SELECT
p1.year,
p1.profit,
(p1.profit - p2.profit) / p2.profit AS annual_growth_rate
FROM
profits p1
JOIN
profits p2 ON p1.year = p2.year + 1
ORDER BY
p1.year;
码云地址:NMG_DDNL: 关于java