Я хочу агрегировать данные по дате окончания набора данных с некоторым начальным периодом, а не началом. Например, я хочу запросить таблицу и вернуть количество совпадающих результатов за 30 дней до даты окончания даты, указанной в результатах. Исходная таблица будет содержать ТОЛЬКО дату совершения продажи (отметку времени). Пример:
sales_timestamp
------------------
2015-08-05 12:00:00
2015-08-06 13:00:00
2015-08-25 12:31:00
2015-08-26 01:02:00
2015-08-27 02:03:00
2015-08-29 04:23:00
2015-09-01 12:00:00
2015-09-02 12:00:00
2015-09-08 00:00:00
Пример вывода результирующего запроса:
date_period | count_of_sales
--------------------------------
2015-08-24 | 2
2015-08-31 | 6
2015-09-07 | 6
в котором дата_период 2015-09-07 будет означать, что компания продала 6 товаров за 30 дней, ЗАКОНЧИВАЮЩИЕСЯ 7 сентября 2015 года (и начиная с 7 августа 2015 года, если истинный 30-дневный период).
Я играл с вариантами функции date_trunc()
, но, похоже, не могу добиться применения усечения к дате окончания вместо группировки по началу.
Эти данные будут размещены в PostgreSQL 9.1.
D
? - person Juan Carlos Oropeza   schedule 09.09.2015