我对这个流行的问题和接受的答案有一个转折: 如何在 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