Mysql 删除按用户id分组的日期的最新记录
我有一个包含以下字段的表Mysql 删除按用户id分组的日期的最新记录,mysql,Mysql,我有一个包含以下字段的表 id (int), userid (int), date_time(datetime), kw (float) 现在我得做些清理。这意味着删除所有记录,只为每个用户保留一天中的最后一条记录 我真的被困在这里面了,所以任何帮助都将被感激 Thx在MySQL中,您可以在delete中使用join语法。因此,这应该是可行的: delete t1 from table t1 join (select date(date_time) as thedat
id (int),
userid (int),
date_time(datetime),
kw (float)
现在我得做些清理。这意味着删除所有记录,只为每个用户保留一天中的最后一条记录
我真的被困在这里面了,所以任何帮助都将被感激
Thx在MySQL中,您可以在delete中使用join语法。因此,这应该是可行的:
delete t1
from table t1 join
(select date(date_time) as thedate, max(date_time) as max_date_time
from table t
group by date(date_time)
) tmax
on date(t1.date_time) = tmax.thedate and
t1.date_time < tmax.max_date_time;
FWIW,我会创建一个只包含所需信息的新表。然后只需删除旧表,并根据需要重命名/重新索引新表。