从销售表中选择最畅销的产品

时间:2015-10-20 23:53:57

标签: sql sql-server

我有一个包含这些行的销售表:

Sales table

cd_produto是产品代码,qtd_produto是已售出产品的数量(daaah)

我想获得最畅销的产品。在这种情况下,它将是产品#1,因为它总和为8(1 + 7)。 第二个是#3,因为它是6。

如果我跑

SELECT TOP 3 cd_produto, qtd_produto FROM itens_vendas ORDER BY qtd_produto DESC

我会通过顶级销售获得它们。但它不会对每个产品的qtd求和。它会认为1是最畅销但只是因为它的值是7,它将忽略1。

我如何通过每种产品的SUM订购它们?

1 个答案:

答案 0 :(得分:3)

使用group by并获取sum并在order by中使用它。

SELECT TOP 3 cd_produto, 
sum(qtd_produto) 
FROM itens_vendas 
GROUP BY cd_produto
ORDER BY sum(qtd_produto) DESC

编辑:

SELECT TOP 3 i.cd_produto, 
p.productname, sum(i.qtd_produto)          
FROM itens_vendas i 
join producttable p on i.cd_produto = p.product_id
GROUP BY cd_produto
ORDER BY sum(qtd_produto) DESC