Как выбрать строку по столбцу 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