Средние затраты за пользовательский диапазон времени в 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