2014-01-07 6 views
0

У меня есть таблица со следующими полямиУдалить последнюю запись в день, сгруппированных по идентификатору пользователя

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

Теперь я должен сделать некоторые уборку вверх. Это означает, что вы удаляете все записи и сохраняете только LAST-запись дня для каждого пользователя.

Я действительно застрял в этом, так что любая помощь будет оценена ...

Thx

+0

FWIW, я бы создал новый стол с только необходимой информацией. Затем просто отбросьте старую таблицу и переименуйте/переиндексируйте новую таблицу по мере необходимости. – Strawberry

ответ

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; 
Смежные вопросы