SQL查询所有部门的名称以及该部门的平均工资 average_salary (不要小数部分),并按平均工资降序排序
时间: 2024-05-29 11:08:32 浏览: 179
好的,这个问题是SQL查询方面的。以下是SQL语句:
SELECT department_name, ROUND(AVG(salary)) AS average_salary
FROM employees
INNER JOIN departments ON employees.department_id = departments.department_id
GROUP BY department_name
ORDER BY average_salary DESC;
相关问题
在northwind数据库中的相关数据表中进行查询。 任务03-1. 查询80号部门的员工名字、部门名称、工种名称。 任务03-2. 查询所有部门的名称以及该部门的平均工资 average_salary (不要小数部分),并按平均工资降序排序
我了解您的要求,并已经接收到您的问题。以下是针对您的问题的 SQL 查询:
任务03-1:
SELECT employees.employee_name, departments.department_name, jobs.job_title
FROM employees
INNER JOIN departments ON employees.department_id = departments.department_id
INNER JOIN jobs ON employees.job_id = jobs.job_id
WHERE departments.department_id = 80;
任务03-2:
SELECT departments.department_name, CAST(AVG(salaries.salary) AS INT) AS average_salary
FROM departments
INNER JOIN employees ON departments.department_id = employees.department_id
INNER JOIN salaries ON employees.employee_id = salaries.employee_id
GROUP BY departments.department_name
ORDER BY average_salary DESC;
希望这可以帮到您!
定义一个匿名块,查询雇员FORD所在部门的平均工资,将查询结果放入变量v_avgsal,并在屏幕上显示出来。 要求显示结果格式如下: 雇员FORD所在部门的平均工资为***(或者“The average salary is ***”)。其中***是求得的平均工资。 平均工资要求在数值前显示$,并保留两位小数。
以下是一个SQL语句的例子,可以实现上述要求:
```
DECLARE
v_avgsal NUMBER;
BEGIN
SELECT AVG(sal) INTO v_avgsal
FROM emp
WHERE deptno = (SELECT deptno FROM emp WHERE ename = 'FORD');
DBMS_OUTPUT.PUT_LINE('The average salary is $' || TO_CHAR(v_avgsal, '99999.99'));
END;
```
解释一下上面的SQL语句:
- `DECLARE` 声明一个匿名块。
- `v_avgsal` 定义一个变量,用来保存查询结果。
- `SELECT AVG(sal) INTO v_avgsal` 查询平均工资,并将结果存储到变量 `v_avgsal` 中。
- `FROM emp` 查询 `emp` 表。
- `WHERE deptno = (SELECT deptno FROM emp WHERE ename = 'FORD')` 查询 `FORD` 所在部门的员工。
- `DBMS_OUTPUT.PUT_LINE` 将结果输出到屏幕上,显示格式为 `$***.**`。
注意,以上SQL语句是Oracle数据库的语法,其他数据库可能会有所不同。
阅读全文