Sql 选择列的两个最大值

Sql 选择列的两个最大值,sql,Sql,我有一个包含以下列的表 Store_ID, Item_ID, Sales_Amount 我需要为每个商店检索两个最畅销的商品。有人对这个问题有什么想法或建议吗?这应该行得通 SELECT mytable.Store_ID, mytable.Sales_Amount FROM mytable LEFT JOIN mytable table2 ON mytable.Store_ID = table2.Store_ID AND mytable.Sales_Amount <=

我有一个包含以下列的表

Store_ID, Item_ID, Sales_Amount
我需要为每个商店检索两个最畅销的商品。有人对这个问题有什么想法或建议吗?

这应该行得通

SELECT mytable.Store_ID, mytable.Sales_Amount
FROM mytable
    LEFT JOIN mytable table2 ON mytable.Store_ID = table2.Store_ID 
    AND mytable.Sales_Amount <= table2.Sales_Amount
GROUP BY mytable.Store_ID, mytable.Sales_Amount HAVING COUNT(mytable.*) <= 2;

你在用什么数据库管理系统?太好了!谢谢马特和所有回答的人!顺便说一句,Matt,我在SAS中使用SQL。左键连接一个不等式来解决每个组的n个问题应该适用于几乎所有方面,而不仅仅是mysql。尽管仍然需要在Select、Group by和having子句中包含表别名。