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

table_name グループから car,color,Max(Year) を car,color で選択

于 2011-06-23T15:27:24.780 に答える