このよくある質問と受け入れられた回答にひねりがあります: SQL の別の列で MAX(列の値)、DISTINCT で行を選択するにはどうすればよいですか?
同様に構造化されたテーブルがありますが、データタイムが最も高い行を選択する代わりに、最大日時を含まない各 ID グループ内のすべての行を削除したいと思います。クエリは、行に関してテーブルを小さくする必要があります。
受け入れられた回答の選択クエリを WHERE NOT EXISTS サブクエリで使用しようとしましたが、「From 句での更新のためにターゲット テーブルを指定できません」というエラーが表示されます。
ここで SELECT 要件を満たさない行を削除するには、これをどのように変更しますか。
SELECT tt.*
FROM topten tt
INNER JOIN
(
SELECT home, MAX(datetime) AS MaxDateTime
FROM topten
GROUP BY home
) groupedtt ON tt.home = groupedtt.home AND tt.datetime = groupedtt.MaxDateTime