Ежемесячный рост базы данных PostgreSQL - PullRequest
0 голосов
/ 31 мая 2018

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

 time_stmp| datname| datsize
----------------------------+----
 2018-05-1  | test    | 35 MB   
 2018-05-2  | test    | 38 MB    
 2018-05-3  | test    | 49 MB
.    
.    
.    
.    
 2018-05-29  | test    | 57 MB    
 2018-05-31  | test    | 62 MB

Даже, я могу рассчитать общий рост в конце месяца, используя запрос ниже

select
    time_stmp,datname,pg_size_pretty(sum(datsize))
from
    testtable
where
    to_char(time_stmp, 'YYYY-MM-DD') = to_char(date_trunc('month', CURRENT_DATE) + interval '1 month - 1 day','YYYY-MM-DD')
group by 1,2;


     time_stmp| datname| datsize
----------------------------+----
 2018-05-31  | test    | 62 MB

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

 time_stmp| datname| datsize
----------------------------+----
2018-01-1 | test | 35 MB
2018-02-1 | test | 50 MB
2018-03-1 | test | 75 MB
.    
.    
.
2018-12-1 | test | 300 MB

Спасибо за ваш ответ ..

1 Ответ

0 голосов
/ 01 июня 2018

Попробуйте этот запрос:

SELECT
    time_stmp, datname, pg_size_pretty(datsize)
FROM
    testtable
WHERE
    to_char(time_stmp + interval '1 day', 'YYYY-MM-DD') =
    to_char(date_trunc('month', time_stmp) + interval '1 month', 'YYYY-MM-DD');

Вот короткая демонстрация, которая показывает, что логика отметки времени верна и что правильно определены окончания месяцев:

Демо

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