数据库查询部门平均工资,要求按部门名称排序,不能含名字叫“human resource”的部门,employee表结构如下,employeeid,employeename,departid,wage;department表结构如下,departmentid,departmentname;employee.departid与department.departid是外键关系
时间: 2024-03-03 22:50:19 浏览: 65
您可以使用以下 SQL 语句查询部门平均工资,并按部门名称排序,同时排除名字叫做“human resource”的部门:
```
SELECT d.departmentname, AVG(e.wage) AS avg_wage
FROM employee e
JOIN department d ON e.departid = d.departmentid
WHERE d.departmentname <> 'human resource'
GROUP BY d.departmentname
ORDER BY d.departmentname;
```
此 SQL 语句使用了 INNER JOIN 连接 employee 和 department 表,以获取每个员工所在部门的部门名称和工资信息。使用 WHERE 子句过滤掉部门名称为“human resource”的记录。使用 GROUP BY 子句按部门名称分组,并使用 AVG 函数计算每个部门的平均工资。最后使用 ORDER BY 子句按部门名称排序。
相关问题
在northwind数据库中的相关数据表中进行查询。查询各部门中工资比本部门平均工资高的员工的员工编号、名字和工资。
假设我们使用的是SQL Server数据库,可以按照以下步骤查询:
1. 首先连接到Northwind数据库。
2. 执行以下SQL语句创建一个名为“EmployeeSalary”的视图,该视图将员工的薪资、部门和平均薪资连接在一起。
```
CREATE VIEW EmployeeSalary AS
SELECT e.EmployeeID, e.FirstName, e.LastName, e.Salary, d.DepartmentName, AVG(e2.Salary) AS AvgSalary
FROM Employees e
INNER JOIN Departments d ON e.DepartmentID = d.DepartmentID
INNER JOIN Employees e2 ON e.DepartmentID = e2.DepartmentID
GROUP BY e.EmployeeID, e.FirstName, e.LastName, e.Salary, d.DepartmentName;
```
3. 执行以下SQL查询语句,筛选出各部门中工资比本部门平均工资高的员工的员工编号、名字和工资。
```
SELECT EmployeeID, FirstName + ' ' + LastName AS Name, Salary
FROM EmployeeSalary
WHERE Salary > AvgSalary;
```
这将返回一个结果集,其中包含符合条件的员工的员工编号、名字和工资。
创建用于企业用于管理的员工管理数据库,数据库名为YGGL,包含员工的信息,部门信息,及员工的薪水信息。数据库YGGL包含下列三个表: (1)Employees:员工信息表 (2)Departments:部门信息表 (3)Salary:员工薪水情况表 表实验2.1 Employees表结构 列名 数据类型 长度 是否允许空值 说明 EmployeeID char 6 否 员工编号,主键 name char 10 否 姓名 education char 4 否 学历 birthday date 16 否 出生日期 sex char 2 否 性别 workyear tinyint 1 是 工作时间 address varchar 20 是 地址 phonenumber char 12 是 电话 departmentID char 3 否 员工部门号,外键 表实验2.2 Departments表结构 列名 数据类型 长度 是否允许空值 说明 departmentID char 3 否 部门编号,主键,标识列 departmentName char 20 否 部门名 note text 16 是 备注 表实验2.3 Salary表结构 列名 数据类型 长度 是否允许空值 说明 employmeID char 6 否 员工编号,主键,外键 Income float 8 否 收入 Outcome float 8 否 支出
好的,以下是创建YGGL数据库及相关表的SQL语句:
```
-- 创建YGGL数据库
CREATE DATABASE YGGL;
-- 选择YGGL数据库
USE YGGL;
-- 创建Employees表
CREATE TABLE Employees (
EmployeeID CHAR(6) PRIMARY KEY,
Name CHAR(10) NOT NULL,
Education CHAR(4) NOT NULL,
Birthday DATE NOT NULL,
Sex CHAR(2) NOT NULL,
Workyear TINYINT,
Address VARCHAR(20),
PhoneNumber CHAR(12),
DepartmentID CHAR(3) NOT NULL,
FOREIGN KEY (DepartmentID) REFERENCES Departments(DepartmentID)
);
-- 创建Departments表
CREATE TABLE Departments (
DepartmentID CHAR(3) PRIMARY KEY,
DepartmentName CHAR(20) NOT NULL,
Note TEXT
);
-- 创建Salary表
CREATE TABLE Salary (
EmployeeID CHAR(6) PRIMARY KEY,
Income FLOAT NOT NULL,
Outcome FLOAT NOT NULL,
FOREIGN KEY (EmployeeID) REFERENCES Employees(EmployeeID)
);
```
以上SQL语句创建了YGGL数据库及三个表:Employees表、Departments表和Salary表。Employees表包含了员工的基本信息和所属部门,Departments表包含了部门的基本信息,Salary表则记录了员工的收入和支出情况。注意,Employees表的EmployeeID和Departments表的DepartmentID均采用了CHAR类型,因为它们是固定长度的标识符;而Salary表的EmployeeID采用了与Employees表相同的类型和长度,以便作为外键参照。
阅读全文