根据最大列选择整个记录

时间:2016-05-27 22:55:07

标签: mysql sql oracle

您好我试图根据最大值获取整个记录信息,例如,假设我有这个名为animals的表

 id         name         price
____       ______       _______
 1         dog          250
 2         cat          100
 3         bird         50

最高价格是250然后我想要检索其记录 所以我应该

id         name       price
____       ____       _____
 1          dog        250

这是我写的查询,但我知道错了

  Select * FROM animals where price = MAX(price); 

4 个答案:

答案 0 :(得分:3)

试试这个:

Select * FROM animals where price = (Select MAX(price) FROM animals); 

答案 1 :(得分:1)

另一种方法是,如果您使用MySQL(由于多个冲突的标签而不清楚),则会order并使用limit

select *
from animals
order by price desc
limit 1;

如果您使用的是oracle,则需要使用子查询,我还会使用with,然后使用rownum指定第一条记录:

with animalsub as
(
   select id, name, price
   from animals
   order by price
)
select *
from animalsub
where rownum = 1;

答案 2 :(得分:0)

_try这个:) SELECT * FROM animals 按价格排序 限制1

答案 3 :(得分:0)

你可以试试这些:

select * from [animals] where price= (select max(price) from [animals])

select top(1) * from [animals] order by price desc