您好,我有一个名为 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 个最常见的项目,但这是错误的,因为需要考虑数量而不是销售表中项目名称的频率。
最佳答案
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
关于mySQL - 获取 2 个最常见的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21920498/