Оставьте последние / новейшие записи в таблице комбинацией полей - PullRequest
0 голосов
/ 27 ноября 2018

Как я могу оставить одну запись (последнюю / последнюю) для каждой комбинации resource_owner_id и областей и удалить другие записи?

Например, для resource_owner_id = 3 и scopes = driver это должна быть только запись с id =1357.resource_owner_id = 5 и scopes = driver - с id = 1034

Я знаю, что могу использовать .ids, после этого получить все записи по идентификатору и области видимости (области действия - enum - 'driver' и 'passenger'), после этого используйте .pop и удалите все оставшиеся записи.

Может быть, есть более элегантное решение?

enter image description here

1 Ответ

0 голосов
/ 27 ноября 2018

SQL Fiddle

Версия ActiveRecord:

Model.select("DISTINCT ON(resource_owner_id, scopes) *")
     .order("resource_owner_id, scopes, id")

Подробнее о DISTINCT ON здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...