第一步先查詢最高銷量是多少:SELECT MAX(銷量) FROM 銷量表;將第一步的查詢結(jié)果作為篩選條件,第二步再查詢滿足條件的商品id和銷量;因此需要用到子查詢進行條件篩選
正確答案是:D: SELECT 商品id,銷量 FROM 銷量表 WHERE 銷量=(SELECT MAX(銷量) FROM 銷量表)
分析如下:
A: `SELECT 商品id,銷量 FROM 銷量表 WHERE 銷量=MAX(銷量)`
- 這條語句是錯誤的,因為 `MAX(銷量)` 是一個聚合函數(shù),不能直接在 `WHERE` 子句中使用。
B: `SELECT 商品id,MAX(銷量) FROM 銷量表 GROUP BY 銷量`
- 這條語句也是錯誤的,因為 `GROUP BY 銷量` 會將結(jié)果按銷量分組,而不是按商品分組,這樣會導(dǎo)致無法正確獲取銷量最高的商品。
C: `SELECT 商品id,MAX(銷量) FROM 銷量表 GROUP BY 商品id`
- 這條語句雖然語法正確,但它會返回每個商品的最大銷量,而不是整個表中銷量最高的商品。
D: `SELECT 商品id,銷量 FROM 銷量表 WHERE 銷量=(SELECT MAX(銷量) FROM 銷量表)`
- 這條語句是正確的,它通過子查詢 `SELECT MAX(銷量) FROM 銷量表` 獲取整個表中最高的銷量,然后在外層查詢中篩選出銷量等于這個最大值的商品。
因此,D選項是正確的。