Вопросы по функциям qlikview

Автор Sergy, 24 октября 2017, 04:13:30

« назад - далее »

Sergy

Доброго времени суток!
Кто-нибудь может объяснить или поделиться полезной инфой по Total, Aggr, Fractile.
Прочел документацию, понял что за они, но в понимании кода возникли проблемы.

Fractile(TOTAL Aggr(Sum(Aggr(Sum([ Price]), [index])), [customer]), 0.5), 1)
и Aggr(Sum([price]), [index])

admin

Привет, на мой взгляд, на help.qlik.com очень понятно все написано.

Возникает сложность с пониманием aggr().

Для начала следует уяснить, что aggr() возвращает МАССИВ, а не одиночное значение.
Т.е. Aggr(Sum([price]), [index]) аналогично:

load index, sum(price)
group by index;
И если "загнать" это выражение в список, то сформируется список вычисленных сумм по index. И когда мы выделим одну или несколько сумм, то произойдет установка фильтра по полю index для тех индексов, чьи результаты мы выделим в списке.
Соответственно, используя aggr в качестве параметра другой функции, мы имеем в виду действие над массивом, который возвращает aggr.

Начните с простых таблиц и простых задач. Пока сам все не проверишь - не поймешь.

Sergy

#2
Спасибо за ответ и помощь!) Как я понял, Aggr возвращает что-то вроде таблицы.
В данном случае из двух столбцов с group by по строкам. Просто непонятно то, что будет на выходе после того, как возьмем еще один sum от aggr,а потом еще один aggr, и  как на это влияет "Total". Да и в целом из руководств я толком не понял, что делает Total.


millik

Цитата: 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(...)) - подсчитывает количество дат. В итоговой таблице у меня одно измерение ЮзерНик. И данная мера показывает количество этих определенных дат для каждого пользователя.





Цитата: 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

Sergy

Спасибо за помощь! С большего, по примеру и pdf  суть уловил.) Неясно только, как работает sum для двух сгруппированных столбцов, и почему total( в некоторых примерах касательно sum) считает сумму и заменяет этим числом значения всех строк.

P.s. Понимаю, в некой степени вопросы могут быть глупыми:), просто разбираться в этом времени не хватает, задача в другом.




Яндекс.Метрика