SQL查找每个类别具有最高值的产品

时间:2014-07-13 13:33:09

标签: mysql sql select max

我的表格样本如下:

id name  category year value seller
 1 item1 cat1     2000 1     1
 2 item1 cat1     2000 5     2
 3 item2 cat1     2000 2     2
 4 item1 cat1     2001 3     2
 5 item2 cat1     2001 1     1
 6 item5 cat2     2000 1     1
 7 item6 cat2     2000 4     2
 8 item5 cat2     2001 1     1
 9 item6 cat2     2001 5     2

我想找到每个类别和年份具有最高价值的商品(卖家ID无关紧要 - 它只是表示同一商品实际上由不同的卖家以不同的价格出售)。

所以期望的结果是:

 2 item1 cat1 2000 5
 4 item1 cat1 2001 3
 7 item6 cat2 2000 4
 9 item6 cat2 2001 5

另外,我怎样才能找到每个类别和年份的前5名,如果2个项目是特定类别年份的最高价值怎么办?

我尝试了以下查询,但这不是我真正想要的:

SELECT id, name, category, year, max(value) as value
FROM product_value
GROUP BY category, year, name
ORDER BY category, year ASC

这个检索每个类别年份的产品的最高值。

因此:

2 item1 cat1 2000 5 2
3 item2 cat1 2000 2 2
4 item1 cat1 2001 3 2
5 item2 cat1 2001 1 1
6 item5 cat2 2000 1 1
7 item6 cat2 2000 4 2
8 item5 cat2 2001 1 1
9 item6 cat2 2001 5 2

0 个答案:

没有答案