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

备考刷题,请到

CDA认证小程序

以下SQL语句中,错误的是()
A. SELECT AVG(sal) FROM emp;
B. SELECT deptno,AVG(sal) FROM emp GROUP BY deptno;
C. SELECT deptno,job,AVG(sal) FROM emp GROUP BY deptno,job;
D.  SELECT deptno,AVG(sal) FROM emp GROUP BY deptno HAVING job=’clerk’;
上一题
下一题
收藏
点赞
评论
题目解析
题目评论(0)

在给定的SQL语句中,我们需要检查每个查询的语法和逻辑,以确定哪个查询存在错误。

A: `SELECT AVG(sal) FROM emp;`
- 这个查询是正确的。它计算`emp`表中`salaries`的平均值。

B: `SELECT deptno,AVG(sal) FROM emp GROUP BY deptno;`
- 这个查询也是正确的。它按`deptno`分组,并计算每个部门的平均工资。

C: `SELECT deptno,job,AVG(sal) FROM emp GROUP BY deptno,job;`
- 这个查询同样是正确的。它按`deptno`和`job`分组,并计算每个部门和职位组合的平均工资。

D: `SELECT deptno,AVG(sal) FROM emp GROUP BY deptno HAVING job=’clerk’;`
- 这个查询是错误的。`HAVING`子句用于过滤分组后的结果,但它只能使用聚合函数或在`GROUP BY`子句中出现的列。在这里,`job`没有出现在`SELECT`或`GROUP BY`子句中,因此这是不合法的。

因此,错误的SQL语句是D。正确的做法是将`job`放在`GROUP BY`子句中,或者在`WHERE`子句中进行过滤,而不是在`HAVING`中直接使用。