我正在尝试使用 SQL 获取我最畅销产品的结果。
我的表order_items
有以下列。
id|product_id|qty
Run Code Online (Sandbox Code Playgroud)
由于有一个QTY
字段,我必须以某种方式按产品 ID 对每个字段进行计数或分组,然后对数量求和,然后只返回最畅销的 5 个项目。
所以数据看起来有点像下面。
id|product_id|qty
-------------------------
1| 1 | 1
2| 1 | 3
3| 2 | 3
4| 2 | 1
5| 1 | 7
Run Code Online (Sandbox Code Playgroud)
... 等等
不确定如何解决这个问题,非常感谢任何帮助。
使用的数据库系统是 MySQL
假设 SQL Server,我可能会使用:
SELECT TOP(5) ProductID, SUM(Quantity) AS TotalQuantity
FROM order_items
GROUP BY ProductID
ORDER BY SUM(Quantity) DESC;
Run Code Online (Sandbox Code Playgroud)
这将返回前 5 名最畅销的产品。
由于SUM(Quantity)
也包含在 SELECT 子句中,您可以在 ORDER BY 中引用其别名,而不是重复表达式:
...
ORDER BY TotalQuantity DESC;
Run Code Online (Sandbox Code Playgroud)
假设 MySQL:
SELECT product_id, SUM(qty) AS TotalQuantity
FROM order_items
GROUP BY product_id
ORDER BY SUM(qty) DESC
LIMIT 5
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
62820 次 |
最近记录: |