正確答案是:D: SELECT City FROM Customer GROUP BY City HAVING COUNT(ID)>200
分析:
在 SQL 中,當(dāng)我們需要對分組后的數(shù)據(jù)進(jìn)行篩選時,應(yīng)該使用 `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` 子句不能用于聚合函數(shù)(如 `COUNT`)。`WHERE` 在分組之前應(yīng)用,而聚合函數(shù)是在分組之后計算的。
C: SELECT City FROM Customer GROUP BY City WHERE COUNT(ID)>200
- 這個選項是錯誤的,因為 `WHERE` 子句不能位于 `GROUP BY` 之后,并且 `WHERE` 不能用于過濾聚合結(jié)果。
D: SELECT City FROM Customer GROUP BY City HAVING COUNT(ID)>200
- 這個選項是正確的。首先,它按照 `City` 對客戶進(jìn)行分組,然后使用 `HAVING` 子句過濾出客戶數(shù)大于 200 的城市。
因此,選項 D 是唯一正確的選擇。