Я использую следующую модель с Django:
class Hit(Model):
image = ForeignKey(Image)
user = ForeignKey(User)
timestamp = DateTimeField(auto_now_add = True)
Мне нужен в основном список, содержащий количество «первых обращений» (то есть совпадений без более ранней отметки времени для того же изображения) для каждого пользователя, чтобы создать сортировку списка рангов.
Или, что еще проще, просто список, содержащий имя пользователя один раз для каждого «первого попадания» этого пользователя.
В SQL, использующем расширение PostgreSQL "DISTINCT ON", это будет простой запрос, подобный:
SELECT DISTINCT ON (image_id) user_id FROM proj_hit ORDER BY image_id ASC, timestamp ASC;
Есть ли способ получить этот результат с помощью ORM Django или (по крайней мере) переносимого SQL, т. Е. Без расширений PostgreSQL?