考试报名
考试报名
考试内容
考试大纲
在线客服
返回顶部

备考刷题,请到

CDA认证小程序

建立如下数据库表: CREATE TABLE department( departid int not null primary key, deptname varchar(20) not null ); CREATE TABLE employee( employeeid int not null, deptid int not null, ename varchar(20) not null, job varchar(10),sal decimal(10,2) ); (2)以下SQL语句中,错误的是
A. SELECT AVG(sal) FROM employee;
B. SELECT deptid,AVG(sal) FROM employee GROUP BY deptid;
C. SELECT deptid,job,AVG(sal) FROM employee GROUP BY deptid,job;
D. SELECT deptid,AVG(sal) FROM employee GROUP BY deptid HAVING job=’clerk’;
上一题
下一题
收藏
点赞
评论
题目解析
题目评论(0)

HAVING 子句中的筛选字段必须是可以出现在分组结果中的字段。

在给出的SQL语句中,错误的是D选项。让我们逐一分析每一个选项:

A: `SELECT AVG(sal) FROM employee;`
- 这条语句是正确的。它计算了`employee`表中所有员工的平均薪资。

B: `SELECT deptid,AVG(sal) FROM employee GROUP BY deptid;`
- 这条语句也是正确的。它按部门ID分组,并计算每个部门的平均薪资。

C: `SELECT deptid,job,AVG(sal) FROM employee GROUP BY deptid,job;`
- 这条语句也是正确的。它按部门ID和工作类型分组,并计算每个部门每种工作类型的平均薪资。

D: `SELECT deptid,AVG(sal) FROM employee GROUP BY deptid HAVING job='clerk';`
- 这条语句是错误的。`HAVING`子句用于过滤分组后的结果,但`HAVING`子句中的`job='clerk'`是错误的,因为`job`字段在`GROUP BY`之后不再是单独的列,而是需要在聚合函数中使用。正确的表达方式应该是在`WHERE`子句中进行过滤,而不是在`HAVING`子句中。例如:
```sql
SELECT deptid, AVG(sal)
FROM employee
WHERE job='clerk'
GROUP BY deptid;
```

综上所述,错误的SQL语句是D选项。