创建出满足下述条件的视图(视图名称为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 ( deptno INT(2) PRIMARY KEY COMMENT'部门编号', dname VARCHAR(10) NOT NULL COMMENT'部门名称', dloc VARCHAR(10) NOT NULL COMMENT'部门地点' ) ;
时间: 2024-04-04 17:30:33 浏览: 84
CREATE VIEW ViewPractice AS
SELECT d.dname AS '部门名称', COUNT(e.empno) AS '部门人数', AVG(e.sal) AS '平均工资'
FROM emp e
JOIN dept d
ON e.deptno = d.deptno
WHERE d.dname != '销售部'
GROUP BY d.dname
UNION
SELECT d.dname AS '部门名称', 0 AS '部门人数', 0 AS '平均工资'
FROM dept d
WHERE d.dname != '销售部' AND d.dname NOT IN (SELECT dname FROM emp)
ORDER BY '部门名称';
相关问题
创建出满足下述条件的视图(视图名称为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 (
好的,您的问题是关于 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;
```
查询结果将会显示每个部门的最低工资、最高工资和平均工资。
阅读全文