设有教师表(教师号,教师名,职称,所在部门),其中“教师号”是主码,“职称”列允许有空值,其他列不允许空。现要查询人数最多的三个部门。下列语句中不能正确完成该查询要求的是( )。

admin2020-10-15  35

问题 设有教师表(教师号,教师名,职称,所在部门),其中“教师号”是主码,“职称”列允许有空值,其他列不允许空。现要查询人数最多的三个部门。下列语句中不能正确完成该查询要求的是(    )。

选项 A、SELECT TOP 3所在部门,COUNT(教师名)FROM教师表
GROUP BY所在部门
ORDER BY COUNT(教师名)DESC
B、SELECl TOP 3所在部门,COUNT(教师号)FROM教师表
GROUP BY 所在部门
ORDER BY COUNT(教师号)DESC
C、SELECT TOP 3所在部门,COUNT(职称)FROM教师表
GROUP BY所在部门
ORDER BY COUNT(职称)DESC
D、SELECT TOP 3所在部门,COUNT(*)FROM教师表
GROUP BY所在部门
ORDER BY COUNT(*)DESC

答案C

解析 COUNT(*)返回表的行数,它不会过滤null和重复的行。COUNT(表达式)会过滤掉null.值,所以值null行不会加入到计数当中,但如果不在“表达式"前面加上distinct关键字,它将会过滤掉重复行。由于“职称”列中有空值,所以使用COUNT(职称)会过滤掉“职称”为空的行,从而不能正确地统计出人数最多的三个部门。故答案为C项。
转载请注明原文地址:https://jikaoti.com/ti/dd37FFFM
0

最新回复(0)