第一步先查询最高销量是多少:SELECT MAX(销量) FROM 销量表;将第一步的查询结果作为筛选条件,第二步再查询满足条件的商品id和销量;因此需要用到子查询进行条件筛选
正确答案是:D: SELECT 商品id,销量 FROM 销量表 WHERE 销量=(SELECT MAX(销量) FROM 销量表)
分析如下:
A: `SELECT 商品id,销量 FROM 销量表 WHERE 销量=MAX(销量)`
- 这条语句是错误的,因为 `MAX(销量)` 是一个聚合函数,不能直接在 `WHERE` 子句中使用。
B: `SELECT 商品id,MAX(销量) FROM 销量表 GROUP BY 销量`
- 这条语句也是错误的,因为 `GROUP BY 销量` 会将结果按销量分组,而不是按商品分组,这样会导致无法正确获取销量最高的商品。
C: `SELECT 商品id,MAX(销量) FROM 销量表 GROUP BY 商品id`
- 这条语句虽然语法正确,但它会返回每个商品的最大销量,而不是整个表中销量最高的商品。
D: `SELECT 商品id,销量 FROM 销量表 WHERE 销量=(SELECT MAX(销量) FROM 销量表)`
- 这条语句是正确的,它通过子查询 `SELECT MAX(销量) FROM 销量表` 获取整个表中最高的销量,然后在外层查询中筛选出销量等于这个最大值的商品。
因此,D选项是正确的。