假设我的这张表有订单行:
ORDER_LINES
- id
- order_id
- product_id
- 数量
它包含每个订单的所有行,其中包含 x 的产品 y 。
现在我想计算出这些产品最畅销的订单行。我正在尝试编写一个有效地执行此操作的查询。
也许类似的东西?这只是猜测。
SELECT DISTINCT product_id, COUNT(SUM(quantity)) as q FROM order_lines ORDER BY q DESC
有什么想法吗?
答案 0 :(得分:3)
虽然"最畅销"是主观的我将其视为所有给定订单的最畅销产品。在这种情况下,您需要使用SUM
进行Group By
,它会为您提供查询。
SELECT product_id, SUM(quantity) As MostSold
FROM order_lines
Group By product_id
ORDER BY MostSold DESC
如果您希望每种产品的订单数量最多,那么您可以选择
SELECT product_id, Count(product_id) As MostSold
FROM order_lines
Group By product_id
ORDER BY MostSold DESC