返回最大值的整个记录


SELECT * FROM car
test-# ;
id  |     make      |          model          |  price
------+---------------+-------------------------+----------
1 | GMC           | Sonoma Club             | 59705.11
2 | Nissan        | Pathfinder              | 97737.00
3 | GMC           | Savana 3500             | 19930.80
4 | Honda         | Passport                | 38793.10
5 | Pontiac       | GTO                     | 34637.61

这是我的汽车数据库我想从price列返回汽车的最大价格。当我使用查询SELECT MAX(price) FROM car;时,它只返回价格的最大值,如下所示

test=# SELECT MAX(price) FROM car;
max
----------
99897.25
(1 row)

我想返回汽车名称、车型名称以及价格。

demo:db<>fiddle

您可以根据price DESC对表排序到具有最高price的第一个记录。然后,您可以将您的输出LIMIT到这一条记录。

SELECT
*
FROM car
ORDER BY price DESC
LIMIT 1

似乎有可能有2辆或更多的汽车具有相同的max价格。然后你是随机选择一个,还是全部列出。如果是后者,则:

select *
from car
where price = (select max(price)
from car
) 
order by id;

最新更新