Eu tenho uma tabela de atividades que tem uma referência de chave estrangeira para uma tabela de usuários. Um usuário pode ter muitas atividades e eu tenho um trabalho que preencherá suas atividades diariamente. Depois que esse trabalho for executado, quero executar uma consulta SQL que excluirá os registros mais antigos por usuário e manterá os 10 mais recentes. Este é o esquema:
usuários
id name
1 Jimmy
2 Johnny
user_activities
id user_id activity date
1 1 foo 2020-08-07 00:00:00
2 1 bar 2020-08-08 00:00:00
3 1 baz 2020-08-09 00:00:00
4 2 foo 2020-08-07 00:00:00
5 2 bar 2020-08-08 00:00:00
6 2 baz 2020-08-09 00:00:00
Como posso escrever uma consulta para truncar registros até os 10 últimos para cada usuário?