質問

メーカー、モデル、年、その他の列で車を説明するテーブルがあるとしましょう。

それから、最新の年の各メーカーとモデルの完全な行を取得したいと思います。

または別の方法で配置する。各行には、メーカーとモデルの一意の組み合わせがあり、年の最大値を持つ対応する行の他のデータと一緒になります。

標準のSQLソリューションは素晴らしいでしょう。

役に立ちましたか?

解決

select t1.make, t1.model, t1.year, t1.other_cols
from table t1
where year = (select max(year) from table t2
              where t2.make = t1.make
              and t2.model = t1.model
             );

他のヒント

MySQLソリューション:

SELECT * FROM cars GROUP NY CONCAT(make, "-", model) ORDER BY year DESC;

これはほとんどどこでも動作するはずです:

SELECT c1.* 
FROM cars c1
INNER JOIN 
  (
     SELECT Make, Model, Max(Year) AS Year
     FROM cars
     GROUP BY Make, Model
  ) c2 ON c1.Make=c2.Make AND c1.Model=c2.Model, c1.Year=c2.Year

主な注意点は、Yearは多くの場合予約語(関数名)であり、予約語をエスケープする手段は計画者によって異なることです。これを修正するには、年列の名前をModelYearなどに変更します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top