ARACOOOL
@ARACOOOL
PHP Developer

Как заполнить дополнить данные пустыми значениями (postgres)?

У меня есть запрос который достает данные по статистике за определенный период времени.

SELECT product_count, created_at::date FROM statistic WHERE created_at::date >= '2015-05-05' AND created_at::date <= '2015-05-08' GROUP BY created_at::date


Если у меня есть данные только по 2м датам, к примеру для 2015-05-05 и 2015-05-06 а для остальных дат данных нет.
На выходе я получу

product_count | created_at
----------------------------------
1                  | 2015-05-05
3                  | 2015-05-06


Мне нужно до заполнить нулями остальные данные, что бы получить на выходе типа:

product_count | created_at
----------------------------------
1                  | 2015-05-05
3                  | 2015-05-06
2                  | 2015-05-07
5                  | 2015-05-08


Как такой запрос сделать?
  • Вопрос задан
  • 272 просмотра
Пригласить эксперта
Ответы на вопрос 1
Amver
@Amver
зачем группировать, если в таблице по 1й записи на день?
да и группировка без агрегатной функции сломается при первом дубле даты

для случая 1 запись/день можно сделать так:
select coalesce(product_count,0), dt::date from generate_series('2015-05-05'::date, '2015-05-08', '1 day') dt
left join statistic on created_at::date = dt::date
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы