0

我有下表:

Car      | color    | year
---------+----------+------
mercedes | blue     | 1991
mercedes | yellow   | 1993
mercedes | blue     | 1996
mercedes | red      | 1998
renaud   | blue     | 1991
renaud   | yellow   | 1993
renaud   | blue     | 1996
renaud   | red      | 1998

我正在寻找一个允许检索每种汽车类型的最旧年份行的查询。在这种情况下,它应该给我:

Car       | color | year
----------+-------+------
mercedes  | blue  | 1991
renaud    | blue  | 1991

我尝试过 ORDER BY + LIMIT, HAVING, GROUP BY.... 但它总是添加我不需要的额外行(我必须遍历结果集以创建子结果)。

你知道我该怎么做吗?

非常感谢您的有用提示!

赫罗德

4

2 回答 2

2

嵌套选择 - 像这样:

select car, max(year) yr
from mytable
group by car

这为每辆车提供了正确的年份。然后你想添加一种颜色(没有指定如果那辆车在那一年有不止一个怎么办......)

select a.car, a.color, a.yr
from (
select car, max(year) yr
from mytable
group by car
) a
, mytable
where mytable.car = a.car
and mytable.year = a.yr
于 2011-06-23T15:26:14.917 回答
0

select car, color, Max(Year) from table_name group by car,color

于 2011-06-23T15:27:24.780 回答