Всем привет!
Возникла задача рассчитать показатели - для формулы решено использовать средние значения. Допустим возьмем 1 показатель с 5 измерениями. В зависимости от направления группирования измерений получаются разные цифры.
Допустим, 5 измерений: Филиал, Ассортимент, Клиент, Месяц, День.
Агрегируем в направлении День -> Месяц -> Клиент -> Ассортимент -> Филиал -> ОБЩИЙ ПОКАЗАТЕЛЬ - одно значение.
Агрегируем в направлении День -> Месяц -> Ассортимент -> Клиент -> Филиал -> ОБЩИЙ ПОКАЗАТЕЛЬ - другое значение.
Агрегируем в направлении День -> Месяц -> Ассортимент -> Филиал -> Клиент -> ОБЩИЙ ПОКАЗАТЕЛЬ - третье значение.
Можно получить три значения и из них рассчитать среднее от трех рассчитанных общих показателей.
У кого есть какие предложения по подходам расчета средних значений в многомерной базе? Иерархий нет, просто группировкой нужно вычислить среднее значение.
Аналог SQL: Select .... avg(value) from ... group by ...
Буду благодарен, если кто-то поделится кусочком методологии агрегирования KPI в одну циферку. Нужен больше методологический ответ. Как с точки зрения математики правильно рассчитать :)
Целые без нулей и миссингов
с нулями
дробные значения
Возможно, если первым шагом агрегировать дни в месяцы, а потом включать в агрегацию другие измерения, то результат останется неизменным независимо от направления агрегации. Т.е. простыми словами - решающее значение вносит какое первое измерение исключается из группировки. Повторюсь в агрегации используется AVG() среднее значение.
Вообщем, фигня все выше указанные рассуждения - "замкнуло где-то в голове" ;D
Данные идут в разрезах по указанным аналитикам. Когда нужно получить среднее по конкретной аналитике, делается группировка по ней и AVG(Value). Когда нужно получить общий показатель по всем аналитикам, группировать ничего не нужно, необходимо просто взять среднее значение по всем аналитикам (единственный момент - нужно отбросить, скорей всего, все миссинги и определиться с нулями - не помню как работает AVG в qlikview).