having 子句中的篩選字段必須是可以出現(xiàn)在分組結(jié)果中的字段。
正確答案是D: `select deptid,avg(sal) from employee group by deptid HAVING job='clerk';`
### 分析:
- **A: `select avg(sal) from employee;`**
- 該語(yǔ)句計(jì)算員工表中所有員工的平均薪水,沒(méi)有任何錯(cuò)誤。
- **B: `select deptid,avg(sal) from employee group by deptid;`**
- 該語(yǔ)句按照部門ID分組,并計(jì)算每個(gè)部門的平均薪水,沒(méi)有任何錯(cuò)誤。
- **C: `select deptid,job,avg(sal) from employee group by deptid,job;`**
- 該語(yǔ)句按照部門ID和職位分組,并計(jì)算每個(gè)部門每個(gè)職位的平均薪水,沒(méi)有任何錯(cuò)誤。
- **D: `select deptid,avg(sal) from employee group by deptid HAVING job='clerk';`**
- 該語(yǔ)句試圖在分組之后使用`HAVING`子句來(lái)篩選數(shù)據(jù)。`HAVING`子句用于對(duì)分組后的結(jié)果進(jìn)行過(guò)濾,而不是對(duì)原始數(shù)據(jù)進(jìn)行過(guò)濾。`job='clerk'`應(yīng)該出現(xiàn)在`WHERE`子句中,而不是`HAVING`子句中。正確的寫法應(yīng)該是:
```sql
select deptid, avg(sal)
from employee
where job='clerk'
group by deptid;
```
綜上所述,D選項(xiàng)的SQL語(yǔ)句存在錯(cuò)誤。