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)
專(zhuān)業(yè)分析:
A: SELECT product_id, sales FROM sales WHERE sales=MAX(sales)
這個(gè)選項(xiàng)是錯(cuò)誤的,因?yàn)樵赟QL中,MAX函數(shù)不能直接在WHERE子句中使用。MAX是一個(gè)聚合函數(shù),應(yīng)該在SELECT子句或HAVING子句中使用。
B: SELECT product_id, MAX(sales) FROM sales GROUP BY sales
這個(gè)選項(xiàng)也是錯(cuò)誤的,因?yàn)镚ROUP BY子句應(yīng)該根據(jù)你想要分組的列來(lái)進(jìn)行分組。在這種情況下,應(yīng)該根據(jù)product_id進(jìn)行分組,而不是sales。
C: SELECT product_id, MAX(sales) FROM sales GROUP BY product_id
這個(gè)選項(xiàng)雖然在語(yǔ)法上是正確的,但它返回的是每個(gè)product_id的最高銷(xiāo)售額,而不是銷(xiāo)售額最高的產(chǎn)品。
D: SELECT product_id, sales FROM sales WHERE sales=(SELECT MAX(sales) FROM sales)
這個(gè)選項(xiàng)是正確的。它通過(guò)子查詢SELECT MAX(sales) FROM sales找到了最高的銷(xiāo)售額,然后在外層查詢中通過(guò)WHERE子句篩選出具有該銷(xiāo)售額的產(chǎn)品id和銷(xiāo)售額。
因此,選項(xiàng)D是正確的答案。