您好我有一个名为items的表,如下所示:
items table
itemname | itemprice
---------------------
orange | 0.50
pear | 0.40
apple | 0.40
banana | 0.75
我还有一张记录每笔销售的表格:
sales table
date | itemname | qty
---------------------
17/12/13 | orange | 4
22/12/13 | banana | 6
23/12/13 | banana | 2
29/12/13 | pear | 3
02/01/14 | orange | 2
05/01/14 | pear | 6
05/01/14 | banana | 5
06/01/14 | apple | 2
我想要的是获取2个最畅销商品的商品名称和价格。所以查询应该返回:
itemname | itemprice
---------------------
banana | 0.70
pear | 0.40
我可以获得2个最常见的项目,但这是错误的,因为需要考虑数量,而不是销售表中项目名称的频率。
答案 0 :(得分:3)
SELECT i.itemname, i.itemprice
FROM items i
JOIN sales s ON i.itemname = s.itemname
GROUP BY s.itemname
ORDER BY SUM(s.qty) DESC
LIMIT 2
如果您想要符合ANSI标准,请将GROUP BY
更改为
GROUP BY i.itemname, i.itemprice