Средние затраты за пользовательский диапазон времени в QlikView

У меня есть таблица, похожая на это:

ReadingDate,=avg(Cost) 
11/04/2011,£10.00 
28/05/2011,£326.00 
02/06/2011,£12.00 
28/06/2011,£53.00 
10/09/2011,£956.00 
11/10/2011,£63.00 
01/01/2012,£36.00 
11/04/2012,£150.00 
12/05/2012,£100.00

Я знаю, как составить среднее значение дня или месяца, но как мне сделать ограничения типа "между 01.05.2012 и 11.11.2013" и получить одно среднее из них?

1 ответ

Если вы хотите сделать это в скрипте загрузки, вы можете создать временную таблицу, в которой вы можете выполнить усреднение по желаемому диапазону, а затем сохранить его в переменной.

Я использовал ваши исходные данные для приведенного ниже примера:

SET DateFormat='DD/MM/YYYY';

MyData:
LOAD * INLINE [
    ReadingDate, Cost
    11/04/2011, 10.00 
    28/05/2011, 26.00 
    02/06/2011, 12.00 
    28/06/2011, 53.00 
    10/09/2011, 956.00 
    11/10/2011, 63.00 
    01/01/2012, 36.00 
    11/04/2012, 150.00 
    12/05/2012, 100.00
];

AverageData:
LOAD
    avg(Cost) as AvgCost
RESIDENT MyData
WHERE (ReadingDate > '28/05/2011') AND (ReadingDate < '01/01/2012');

DROP TABLE AverageData;

LET AverageCost = peek('AvgCost',0,'AverageData');

Вот, AverageCost ваша переменная и содержит одно число (в этом случае 271). который вы можете использовать позже в скрипте, например:

MyData2:
NOCONCATENATE
LOAD
    ReadingDate, 
    Cost
    $(AverageCost)
RESIDENT MyData;

Это приводит к следующему:

11/04/2011, 10.00, 271
28/05/2011, 26.00, 271 
02/06/2011, 12.00, 271 
28/06/2011, 53.00, 271 
10/09/2011, 956.00, 271 
11/10/2011, 63.00, 271 
01/01/2012, 36.00, 271 
11/04/2012, 150.00, 271 
12/05/2012, 100.00, 271
Другие вопросы по тегам