У меня есть проблема с сортировкой / группировкой, которая, я надеюсь, кто-нибудь может добавить для понимания.
У нас есть таблица историй с датой публикации и обновленной датой.Я использую Django, так что это выглядит так:
class Story(models.Model):
pub_date = models.DateTimeField(db_index=True)
update_date = models.DateTimeField(blank=True, null=True, db_index=True)
headline = models.CharField(max_length=200)
...
Мы хотим отобразить истории на страничной странице, сгруппированной по дням.Итак ...
Jan 20
Story 1
Story 2
Jan 19
Story 1
Story 3
Проблема в том, что если у истории есть дата обновления, она должна отображаться дважды, один раз в день публикации и один раз в дату обновления (например, история 1).
Есть десятки тысяч историй, поэтому я, конечно, не могу сделать все это на python, но я не знаю, как выполнить этот запрос в SQL.
Что у меня есть сейчассортирует все по -pub_date, а затем получает диапазон максимальных и минимальных дат на данной странице.Затем я запрашиваю любые истории между этими датами с update_date и объединяю и группирую их в python.Проблема в том, что количество элементов на странице нерегулярно.
Поэтому я предполагаю, что мой вопрос заключается в следующем: как лучше всего запросить таблицу для списка элементов и отсортировать их по двум полям, дублируя элемент в запросе, если он имеет значение во второмполе, а затем сортировка на основе двух полей?
Надеюсь, что имеет смысл ...