我的表格样本如下:
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