创建出满足下述条件的视图(视图名称为ViewPractice)。 分数 4 作者 龙彦宇 单位 广东东软学院 创建出满足下述条件的视图(视图名称为ViewPractice)。 (1)按部门名称分组,统计除销售部外每个部门的部门人数和平均工资,并为每个结果字段起别名。 (2)使用子查询的结果(部门名称,部门人数,平均工资)创建视图。 (3)对该视图执行SELECT语句的结果如下所示: 表结构: 请在这里写定义表结构的SQL语句。例如: CREATE TABLE emp ( empno INT(4) PRIMARY KEY COMMENT'员工编号', ename VARCHAR(10) NOT NULL COMMENT'员工姓名', job VARCHAR(10) COMMENT'员工岗位', hiredate DATE COMMENT'入职日期', sal DECIMAL(7,2) COMMENT'工资', deptno INT(2) NOT NULL COMMENT'部门编号' ) ; CREATE TABLE dept (
时间: 2024-02-28 18:57:57 浏览: 61
好的,您的问题是关于 SQL 视图的。根据题目要求,创建一个名为 ViewPractice 的视图,可以使用以下 SQL 语句:
```
CREATE VIEW ViewPractice AS
SELECT
CASE
WHEN dept.dname = '销售部' THEN NULL
ELSE dept.dname
END AS dept_name,
COUNT(emp.empno) AS emp_count,
AVG(emp.sal) AS avg_sal
FROM emp
JOIN dept ON emp.deptno = dept.deptno
GROUP BY dept.dname
HAVING dept_name IS NOT NULL;
```
这里使用了 CASE WHEN 语句将销售部的部门名称设置为 NULL,然后使用 JOIN 操作符将 emp 表和 dept 表连接起来。接着使用 GROUP BY 子句对部门名称进行分组,并使用 COUNT 和 AVG 函数分别计算部门人数和平均工资。最后使用 HAVING 子句过滤掉部门名称为 NULL 的结果即可。这个视图包含了部门名称、部门人数和平均工资三个字段。可以通过以下 SELECT 语句查询该视图的结果:
```
SELECT * FROM ViewPractice;
```
查询结果将包含每个除销售部外的部门的部门名称、部门人数和平均工资。
相关问题
10-14 创建出满足下述条件的视图,(视图名称为ViewPractice)。 分数 5 作者 张爽 单位 广东东软学院 (1)按部门名称分组,统计每个部门的最低工资,最高工资,平均工资,并为每个结果字段命起别名。 (2)使用查询的结果(部门名称,最低工资,最高工资,平均工资)创建视图。 (3)对该视图执行SELECT语句的结果如下输出样例所示: 请对创建好的视图进行查询。 提示:请使用CREATE VIEW语句作答,视图名称为ViewPractice。
好的,我知道了。以下是创建视图的SQL语句:
```
CREATE VIEW ViewPractice AS
SELECT
d.department_name AS "部门名称",
MIN(e.salary) AS "最低工资",
MAX(e.salary) AS "最高工资",
AVG(e.salary) AS "平均工资"
FROM
employees e
JOIN departments d
ON e.department_id = d.department_id
GROUP BY
d.department_name;
```
执行以上SQL语句后,就会创建一个名为ViewPractice的视图,包含每个部门的最低工资、最高工资和平均工资等信息。
接下来,您可以使用以下SQL语句查询该视图:
```
SELECT * FROM ViewPractice;
```
查询结果将会显示每个部门的最低工资、最高工资和平均工资。
创建出满足下述条件的视图,(视图名称为ViewPractice)。分数 5 全屏浏览题目 切换布局 作者 张爽 单位 广东东软学院 (1)按部门名称分组,统计每个部门的最低工资,最高工资,平均工资,并为每个结果字段命起别名。 (2)使用查询的结果(部门名称,最低工资,最高工资,平均工资)创建视图。 (3)对该视图执行SELECT语句的结果如下输出样例所示: 请对创建好的视图进行查询。 提示:请使用CREATE VIEW语句作答,视图名称为ViewPractice。
根据您的要求,创建出满足条件的视图,SQL语句如下:
```
CREATE VIEW ViewPractice AS
SELECT
department_name AS '部门名称',
MIN(salary) AS '最低工资',
MAX(salary) AS '最高工资',
AVG(salary) AS '平均工资'
FROM
employees
JOIN departments
ON employees.department_id = departments.department_id
GROUP BY
department_name;
```
该视图的作用是按照部门名称分组,统计每个部门员工的最低工资、最高工资和平均工资,并为每个结果字段命名别名。同时,使用查询结果创建了一个名为 ViewPractice 的视图。
您可以使用以下语句查询该视图:
```
SELECT * FROM ViewPractice;
```
输出结果将按照部门名称分组,每个部门对应的最低工资、最高工资和平均工资将会被列出。
阅读全文