SQL返回值基于另一列中的最低值

时间:2017-06-28 15:21:45

标签: mysql sql

我试图寻找解决方案,但一直找不到。我猜它是基本的SQL,但我似乎无法弄明白。

我有一个名为people的表,这个表有几列:

ID  Firstname Lastname   Birthdate
1   John      Stevenson  1860-07-30
2   Eric      Johnson    1918-08-25
3   Adam      Efron      1914-02-02
4   Michael   Gray       1870-07-18

现在我想创建一个查看Birthdate列的查询,查找最低值并返回具有最低生日(最早)的人的名字。 有人能引导我朝正确的方向发展吗? 提前谢谢!

3 个答案:

答案 0 :(得分:3)

使用order by之类的

select Firstname 
from people
order by Birthdate 
limit 1

答案 1 :(得分:2)

这将占2个具有相同生日的人,返回2行。

select Firstname
from people
where birthdate = (select min(birthdate) from people);

答案 2 :(得分:0)

另一种有效的方法是(sqlfiddle):

select p.*, min(p.birthdate) from people p;

注意:输出中将有1个额外的列。