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

备考刷题,请到

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`

专业分析:
1. **SELECT City FROM Customer GROUP BY City HAVING COUNT(ID)>200**
- 这条SQL语句首先使用 `GROUP BY City` 对 `Customer` 表按 `City` 字段进行分组。
- 然后使用 `HAVING COUNT(ID) > 200` 来过滤分组后的结果,保留那些客户数大于200的城市。
- 这种方式是正确的,因为 `HAVING` 子句是在 `GROUP BY` 分组后进行过滤的,适用于聚合函数。

2. **SELECT City FROM Customer HAVING COUNT(ID)>200**
- 这条SQL语句缺少 `GROUP BY` 子句,所以它无法按城市分组,也就无法正确计算每个城市的客户数。

3. **SELECT City FROM Customer WHERE COUNT(ID)>200 GROUP BY City**
- 这条SQL语句是错误的,因为 `WHERE` 子句不能用于聚合函数。聚合函数应该在 `HAVING` 子句中使用。

4. **SELECT City FROM Customer GROUP BY City WHERE COUNT(ID)>200**
- 这条SQL语句也是错误的,因为 `WHERE` 子句不能用于聚合函数。正确的做法是使用 `HAVING` 子句来过滤聚合后的结果。

综上所述,D选项是正确的选择。