First get the maximum sales: SELECT MAX(sales) FROM sales; Then use it as condition to filter for id and sales. So subquery is needed.
正确答案是:D: SELECT product_id, sales FROM sales WHERE sales=(SELECT MAX(sales) FROM sales)
专业分析:
A: SELECT product_id, sales FROM sales WHERE sales=MAX(sales)
这个选项是错误的,因为在SQL中,MAX函数不能直接在WHERE子句中使用。MAX是一个聚合函数,应该在SELECT子句或HAVING子句中使用。
B: SELECT product_id, MAX(sales) FROM sales GROUP BY sales
这个选项也是错误的,因为GROUP BY子句应该根据你想要分组的列来进行分组。在这种情况下,应该根据product_id进行分组,而不是sales。
C: SELECT product_id, MAX(sales) FROM sales GROUP BY product_id
这个选项虽然在语法上是正确的,但它返回的是每个product_id的最高销售额,而不是销售额最高的产品。
D: SELECT product_id, sales FROM sales WHERE sales=(SELECT MAX(sales) FROM sales)
这个选项是正确的。它通过子查询SELECT MAX(sales) FROM sales找到了最高的销售额,然后在外层查询中通过WHERE子句筛选出具有该销售额的产品id和销售额。
因此,选项D是正确的答案。