如何在sql中找到最贵的物品,有多个最贵的物品?

时间:2015-03-01 20:34:25

标签: mysql sqlite max

我的数据库中有多个价格最高的商品,我想知道如何在我的数据库中以最高价格退回最贵的商品,而不使用LIMIT。 我尝试过使用

SELECT MAX(price) FROM items

但它只返回一个价格最高的商品(我有两个价格最高的商品)。

我的数据库架构是

items (itemID: integer, description: string, price: integer)

3 个答案:

答案 0 :(得分:3)

这样可行。

SET @p1 := (SELECT MAX(price) FROM items);
SELECT * FROM items WHERE price = @p1;

使用变量,p1存储表price中的最大items,然后使用以下查询中的变量p1返回具有该最高价格的所有记录不要限制你想要的记录数量。

答案 1 :(得分:1)

一种方法是使用连接来获取所有这些:

SELECT I.* FROM Items I JOIN
   (SELECT MAX(price) AS maxprice FROM items) M
   ON I.price=M.maxprice;

答案 2 :(得分:1)

你可以尝试这个伴侣:

SELECT * FROM items
WHERE itemID IN (
   SELECT itemID FROM items
   WHERE price IN (
      SELECT MAX(price) FROM  items
   )
);  

或者

SELECT * FROM items
WHERE price IN (
   SELECT MAX(price) FROM items
);