mySQL - 获得2个最常见的项目

时间:2014-02-20 21:56:10

标签: mysql database phpmyadmin

您好我有一个名为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个最常见的项目,但这是错误的,因为需要考虑数量,而不是销售表中项目名称的频率。

1 个答案:

答案 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

SQL Fiddle

如果您想要符合ANSI标准,请将GROUP BY更改为

GROUP BY i.itemname, i.itemprice