Marcus Grimm <[email protected]> wrote:
> I have a table to record some history data, for example
> items a user recently selected:
>
> CREATE TABLE THI(ID INTEGER PRIMARY KEY, TimeStamp INTEGER, UserID INTEGER,
> DataID INTEGER);
>
> That table needs to trace only the last 10 events, thus I would like
> to remove entries from all users until each user has only 10 recent entries
> in that table.
>
> I can delete for a specific user (42), using this:
>
> DELETE FROM THI WHERE
> (UserID=42) AND
> (ID NOT IN (SELECT ID FROM THI WHERE UserID=42 ORDER BY TimeStamp DESC LIMIT
> 10));
>
> But how do I do this for all users without using a surrounding loop
> on application level ?
delete from THI where ID not in (
select ID from THI t2 where t2.UserID = UserId
order by t2.TimeStamp desc limit 10);
--
Igor Tandetnik
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users