Как получить список данных за месяц в месяц в postgresql - PullRequest
0 голосов
/ 04 октября 2018

я использую psql v.10.5

и у меня есть таблица структуры, подобная этой:

|     date      | total |
-------------------------
|  01-01-2018   |   50  |
|  05-01-2018   |   90  |
|  30-01-2018   |   20  |

как получить повторные данные по месяцам, но данные показывали ровно 30 дней, яхочу, чтобы данные отображались так:

|     date      | total |
-------------------------
|  01-01-2018   |   50  |
|  02-01-2018   |   0   |
|  03-01-2018   |   0   |
|  04-01-2018   |   0   |
|  05-01-2018   |   90  |
.....
|  29-01-2018   |   0   |
|  30-01-2018   |   20  |

Я пробовал этот запрос:

SELECT * FROM date
WHERE EXTRACT(month FROM "date") = 1  // dynamically
AND EXTRACT(year FROM "date") = 2018  // dynamically

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

любая помощь будет оценена

1 Ответ

0 голосов
/ 04 октября 2018

Используйте функцию generate_series(start, stop, step interval), например:

select d::date, coalesce(total, 0) as total
from generate_series('2018-01-01', '2018-01-31', '1 day'::interval) d
left join my_table t on d::date = t.date

Рабочий пример в rextester.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...