删除按用户ID分组的一天的最新记录

时间:2014-01-07 14:53:12

标签: mysql

我有一个包含以下字段的表

id (int),
userid (int),
date_time(datetime),
kw (float)

现在我必须做一些清理工作。这意味着删除所有记录,并且只为每个用户保留一天的最后记录。

我真的陷入了困境,所以任何帮助都会受到赞赏......

THX

1 个答案:

答案 0 :(得分:0)

在MySQL中,您可以使用join中的delete语法。所以,这应该有效:

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;