Как выбрать строку по столбцу distinct и max datetime?

Пытаюсь получить последние записи, которые я вставил в базу данных на основе DateTime и отличительной колонки SocialMedia_ID, но получаю следующую ошибку DISTINCT ON fields is not supported by this database backend, когда она доходит до следующей строки:

accountsTwitter = StatsTwitter.objects.all().order_by('DateTime').distinct('SocialMedia_id')

Я хочу отметить, что приведенный ниже SQL запрос работает, и мне нужно преобразовать его в django.

SELECT *  FROM stats_Twitter WHERE DateTime IN (SELECT MAX(DateTime) FROM stats_Twitter GROUP BY SocialMedia_ID)

вы можете получить последние записи

last_record = StatsTwitter.objects.last()

если вам нужны последние n записей, то

last_n_records = StatsTwitter.objects.all().order_by('-DateTime')[:n]
<<<Не знаю, как выглядит ваша

модель, SozialMedia но предполагаю, что она у вас есть. Если это так, то вам подойдет этот вариант:

accounts_twitter = SocialMedia.objects.annotate(last_stat=Max('StatsTwitter__Datetime'))

Я не тестировал, но это должно работать. Пожалуйста, используйте также, что я не рекомендую называть поле DateTime, потому что это может привести к конфликтам с datetime.datetime

Вернуться на верх