Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Запрос даты SQL показывает несуществующие дни

Автор вопроса: Eduardo OliveiraОтветов: 1

Я столкнулся со следующей проблемой:

Мне нужно запросить базу данных Postgres для общего количества загрузок каждый день с 2008 года, например

date | downloads 1-1-2008 | 20 3-1-2008 | 10

реальная проблема в том, что я не делаю каждую запись на каждый день, но мне нужно также получать дни, когда загрузки были нулевыми.

Решение, которое работает сейчас, состоит в том, чтобы иметь еще одну таблицу с каждой датой с 01.01.2008 по 01.01.2018.

И прямое присоединение к нему по каждому запросу, ориентированному на диапазон дат....

это лучший способ?

postgresqlsqlperformance

Ответы

Ответ 1 · рейтинг 2 · Clodoaldo Neto

Выполните right join для таблицы generate_series

select s.d
from
    downloads d
    right join
    (
        select d::date
        from
        generate_series('2008-01-01', current_date, interval '1 day') s(d)
    ) s on s.d = d.d

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы