2016-07-23 2 views
0

Я ищу для запроса, который может агрегировать данные на 21 дней назад основание следующим образом: моя таблица имеет следующие столбцы: ACCOUNTID, дату, измеренияSQL скольжение агрегации окна (без использования функции окна)

Мне нужно, для каждой учетной записи, указать сумму (меру) за предыдущие 21 день назад. Любая идея, как это сделать в чистом SQL без оконной/аналитической функции? (Я пишу SQL внутри продукта BI, который не имеет поддержки в аналитических функциях)

+0

Можете ли вы предоставить образцы данных и желаемые результаты? 21 день назад от чего? –

ответ

1

Довольно неэффективный метод использует коррелированные подзапросы. Если вы хотите для каждой записи в предыдущие 21 дней, а затем:

select t.*, 
     (select sum(t2.measure) 
     from t t2 
     where t2.accountid = t.accountid and 
       t2.date > t.date - interval '21' day 
     ) as sum21 
from t; 

Не то функции даты отличаются базой данных, так что ваша конкретная база данных может иметь другой метод вычитания 21 дней.

 Смежные вопросы

  • Нет связанных вопросов^_^