正确答案是: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 是唯一正确的选择。