Доброго времени суток!
Кто-нибудь может объяснить или поделиться полезной инфой по Total, Aggr, Fractile.
Прочел документацию, понял что за они, но в понимании кода возникли проблемы.
Fractile(TOTAL Aggr(Sum(Aggr(Sum([ Price]), [index])), [customer]), 0.5), 1)
и Aggr(Sum([price]), [index])
Привет, на мой взгляд, на help.qlik.com очень понятно все написано.
Возникает сложность с пониманием aggr().
Для начала следует уяснить, что aggr() возвращает МАССИВ, а не одиночное значение.
Т.е. Aggr(Sum([price]), [index]) аналогично:
load index, sum(price)
group by index;
И если "загнать" это выражение в список, то сформируется список вычисленных сумм по index. И когда мы выделим одну или несколько сумм, то произойдет установка фильтра по полю index для тех индексов, чьи результаты мы выделим в списке.
Соответственно, используя aggr в качестве параметра другой функции, мы имеем в виду действие над массивом, который возвращает aggr.
Начните с простых таблиц и простых задач. Пока сам все не проверишь - не поймешь.
Спасибо за ответ и помощь!) Как я понял, Aggr возвращает что-то вроде таблицы.
В данном случае из двух столбцов с group by по строкам. Просто непонятно то, что будет на выходе после того, как возьмем еще один sum от aggr,а потом еще один aggr, и как на это влияет "Total". Да и в целом из руководств я толком не понял, что делает Total.
Цитата: Sergy от 24 октября 2017, 07:45:39
Спасибо за ответ и помощь!) Как я понял, Aggr возвращает что-то вроде таблицы. В данном случае из двух столбцов с group by по строкам.
Да, вычисляется виртуальная таблица, которую потом можно использовать уже в визуализации.
Цитата: Sergy от 24 октября 2017, 07:45:39
Просто непонятно то, что будет на выходе после того, как возьмем еще один sum от aggr
Просуммируется столбец с выражением. Пример из реального приложения:
Count(Aggr(If(IsNull(Date_-Above(Date_)) Or (Date_-Above(Date_))>$(vComeBackPeriod),Date_,Null()),UserID,Date_))
Aggr(If(IsNull(Date_-Above(Date_)) Or (Date_-Above(Date_))>$(vComeBackPeriod),Date_,Null()),UserID,Date_) - Формирует таблицу с измерениями ЮзерИД и Дата и мерой которая показывает только определенные даты.
Count(Aggr(...)) - подсчитывает количество дат. В итоговой таблице у меня одно измерение ЮзерНик. И данная мера показывает количество этих определенных дат для каждого пользователя.
(https://millik.by/4share/QSForum1.png)
Цитата: Sergy от 24 октября 2017, 07:45:39
а потом еще один aggr
получится ещё одна виртуальная таблица =)
Цитата: Sergy от 24 октября 2017, 07:45:39
и как на это влияет "Total". Да и в целом из руководств я толком не понял, что делает Total.
Total игнорирует измерения визуализации.
ПС
Лучший способ узнать как работает та или иная функция - экспериментировать самому. Создаете какое-нибудь тестовое приложение с небольшим набором данных и пробуете.
ПСС
Не знаю чем вам не понравился хелп. Там всё понятно разжевано, даже с примерами.
Чтобы постоянно не лазить на сайт можно оттуда же скачать пдф файлы, есть даже на русском. http://help.qlik.com/ru-RU/sense/June2017/Content/Guides.htm (http://help.qlik.com/ru-RU/sense/June2017/Content/Guides.htm)
Спасибо за помощь! С большего, по примеру и pdf суть уловил.) Неясно только, как работает sum для двух сгруппированных столбцов, и почему total( в некоторых примерах касательно sum) считает сумму и заменяет этим числом значения всех строк.
P.s. Понимаю, в некой степени вопросы могут быть глупыми:), просто разбираться в этом времени не хватает, задача в другом.