2016-11-14 2 views
2

私はベースに重複に問題がありますが、一部の列にユニークなデータがあるため、別のテーブルを使用できません。私は最後の評価を保持したい。 例:T-SQL(アクセス)すべての重複を削除しますが、最も高いIDを持つものを削除

ID| ProductName | Code | Rating 
------|------ | ------ | ------ 
1| Bag | 1122 | 5 
2| Car| 1133 | 2 
3| Bag | 1122 | 3 
4| Car | 1133 | 1 
5| Train| 1144 | 1 

クエリの結果として、私が取得したい:

ID| ProductName | Code | Rating 
------|------ | ------ | ------ 
3| Bag | 1122 | 3 
4| Car | 1133 | 1 
5| Train| 1144 | 1 

答えて

1

1つのオプションは、各Code/ProductNameグループの最新の重複のID値を識別するためにGROUP BYを使用しています。

SELECT t1.* 
FROM yourTable t1 
INNER JOIN 
(
    SELECT Code, MAX(ID) AS ID 
    FROM yourTable 
    GROUP BY Code 
) t2 
    ON t1.Code = t2.Code AND 
     t1.ID = t2.ID 
+0

このケースとコードの書式設定にご協力いただきありがとうございます。 – Maleficus

関連する問題