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

备考刷题,请到

CDA认证小程序

在" Customers "表中,有字段'ID'(客户号,主键),'Name'(姓名),'City'(居住城市),现需要分组汇总,并找出客户数两大于200的'City'?
A. SELECT City FROM Customer HAVING COUNT(ID)>200
B. SELECT City FROM Customer WHERE COUNT(ID)>200 GROUP BY City
C. SELECT City FROM Customer GROUP BY City WHERE COUNT(ID)>200
D. SELECT City FROM Customer GROUP BY City HAVING COUNT(ID)>200
上一题
下一题
收藏
点赞
评论
题目解析
题目评论(0)

正确答案是:D: SELECT City FROM Customer GROUP BY City HAVING COUNT(ID)>200

分析:

在 SQL 中,当我们需要对分组后的数据进行筛选时,应该使用 `HAVING` 子句,而不是 `WHERE` 子句。`WHERE` 子句用于在分组前筛选记录,而 `HAVING` 子句用于在分组后筛选记录。

让我们逐一分析选项:

A: SELECT City FROM Customer HAVING COUNT(ID)>200
- 这个选项是错误的,因为缺少 `GROUP BY` 子句。`HAVING` 子句必须与 `GROUP BY` 子句一起使用。

B: SELECT City FROM Customer WHERE COUNT(ID)>200 GROUP BY City
- 这个选项是错误的,因为 `WHERE` 子句不能用于聚合函数(如 `COUNT`)。`WHERE` 在分组之前应用,而聚合函数是在分组之后计算的。

C: SELECT City FROM Customer GROUP BY City WHERE COUNT(ID)>200
- 这个选项是错误的,因为 `WHERE` 子句不能位于 `GROUP BY` 之后,并且 `WHERE` 不能用于过滤聚合结果。

D: SELECT City FROM Customer GROUP BY City HAVING COUNT(ID)>200
- 这个选项是正确的。首先,它按照 `City` 对客户进行分组,然后使用 `HAVING` 子句过滤出客户数大于 200 的城市。

因此,选项 D 是唯一正确的选择。