我的零售POS应用程序中有2个简单的表...称为产品和product_sales。 product_sales记录以不同顺序进行的所有销售。我想显示一个页面,列出按销售数量排序的所有产品...
现在我想编写一个可以获取我所有产品的SQL查询...我认为左边的连接...可以显示该产品的所有销售额的总和......并将它们排序为RANK即畅销商品。
我是SQL的初学者...而且不确定要写什么。这是我尝试过的但不起作用。
SELECT DISTINCT p1.name,
p1.id
FROM products p1
LEFT JOIN
product_sales p2
ON p1.id = p2.product_id
ORDER BY SUM(p2.quantity)
答案 0 :(得分:1)
SELECT t1.name,
COALESCE(t2.totalQuantity, 0)
FROM products t1
LEFT JOIN
(
SELECT product_id, SUM(quantity) AS totalQuantity
FROM product_sales
GROUP BY product_id
) t2
ON t1.id = t2.product_id
ORDER BY t2.totalQuantity DESC -- show highest selling product first