Неофициальный форум пользователей Qlik Sense & Qlikview

Для разработчиков => Вопросы по Qlik Sense & QlikView => Тема начата: haltol от 03 июля 2018, 01:22:04

Название: Разная агрегация для разных измерений.
Отправлено: haltol от 03 июля 2018, 01:22:04
Доброго дня.

Необходимо рассчитывать среднесписочную. Есть несколько измерений, для всех измерений кроме месяц, год нужно делать Sum. А для измерений  месяц, год AVG.
Название: Re: Разная агрегация для разных измерений.
Отправлено: admin от 03 июля 2018, 01:58:03
Привет,
можно пример данных в табличном виде с желаемым результатом?
Название: Re: Разная агрегация для разных измерений.
Отправлено: haltol от 03 июля 2018, 03:08:49
Табличка здесь.
https://share.rosinter.ru/owncloud/public.php?service=files&t=0cf69dd8619f30b9e9cced8fbd731fec (https://share.rosinter.ru/owncloud/public.php?service=files&t=0cf69dd8619f30b9e9cced8fbd731fec)

Есть Location
Административно-хозяйственное Управление
2017   Jan
srdSp2 = 2.451612903

2017   Feb
3.451612903

2017   Mar
4.129032258


2017   1Q
(
2.451612903
+
3.451612903
+
4.129032258
) / кол-во месяцев

3.344086022

Как то так


Название: Re: Разная агрегация для разных измерений.
Отправлено: admin от 04 июля 2018, 07:35:10
Привет.
в каком виде/объекте требуется вывод результата?

[smg id=87 Width=450]

В Qlik Sense аналогично.
Название: Re: Разная агрегация для разных измерений.
Отправлено: haltol от 04 июля 2018, 08:09:15
Спасибо именно так и делал,

avg({<[Year] = {$(=max([Year]))},[Режим] = {'Текущий'}>} Aggr(sum({<[Year] = {$(=max([Year]))},[Режим] = {'Текущий'}>} [srdSp2]), Month,Year,Location))

но Location не складывается. А тоже дает среднее. А мне нужно, что бы по всем измерениям кроме Month,Year - было суммирование.

(https://qliksense-forum.ru/qvf/proxy.php?request=http%3A%2F%2Fwww.picshare.ru%2Fuploads%2F180704%2FIg68EQNZ3a.jpg&hash=49e052580e536d2fa46598af23020ca2fd152e2a)

Когда убираю Location из Aggr, то отдельно по ним нету итогов. Но общий итог за период корректный.
avg({<[Year] = {$(=max([Year]))},[Режим] = {'Текущий'}>} Aggr(sum({<[Year] = {$(=max([Year]))},[Режим] = {'Текущий'}>} [srdSp2]), Month,Year))

Название: Re: Разная агрегация для разных измерений.
Отправлено: haltol от 04 июля 2018, 08:19:03
Так формала выглядит в MS Analisys

IIF([Период].currentmember.level is [Период].Levels(1),

round( ([Measures].[Srd Sp2] /
COUNT(Descendants([Период].currentmember,[Период].levels(3)))),2),

(IIF([Период].currentmember.level is [Период].Levels(2),

round(([Measures].[Srd Sp2] /
COUNT(Descendants([Период].currentmember,[Период].levels(3)))),2),

(IIF([Период].currentmember.level is [Период].Levels(0),

round(([Measures].[Srd Sp2] /
COUNT(Descendants([Период].currentmember,[Период].levels(3)))),2),

round([Measures].[Srd Sp2],2))))))
Название: Re: Разная агрегация для разных измерений.
Отправлено: admin от 04 июля 2018, 09:13:36
В настройках меры выберите опцию для итогов. У вас он считает по выражению, а если выбрать Sum то будет складывать строки.
Название: Re: Разная агрегация для разных измерений.
Отправлено: haltol от 04 июля 2018, 09:21:37
Извините, а Sence - это можно? Где это ставится?
Название: Re: Разная агрегация для разных измерений.
Отправлено: haltol от 04 июля 2018, 09:25:10
А вот накрапал. Вроде корректно считает.

Sum({<[Year] = {$(=max([Year]))},[Режим] = {'Текущий'}>} [srdSp2])
/
Count(DISTINCT {<[Year] = {$(=max([Year]))},[Режим] = {'Текущий'}>}  Month)
Название: Re: Разная агрегация для разных измерений.
Отправлено: admin от 04 июля 2018, 02:13:40
Цитата: haltol от 04 июля  2018, 09:21:37  
Извините, а Sence - это можно? Где это ставится?
В опциях меры - Функция итоговых значений
Название: Re: Разная агрегация для разных измерений.
Отправлено: haltol от 05 июля 2018, 01:14:00
Спасибо.