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

Для разработчиков => Вопросы по Qlik Sense & QlikView => Тема начата: rsch от 10 октября 2016, 10:12:24

Название: Непонятное поведение QlikView при использовании
Отправлено: rsch от 10 октября 2016, 10:12:24
Добрый день!!!

Разбираю статью http://blog.atkcg.ru/distinct-or-no-distinct-vot-v-chyom-vopros/ (http://blog.atkcg.ru/distinct-or-no-distinct-vot-v-chyom-vopros/) и столкнулся с тем, что у меня у меня QlikView обрабатывает данные не ясно для меня:

Table1:
LOAD * INLINE
[Group, Value
A, 150
A, 150
B, 250
B, 250
C, 400
C, 400];
Table2:
LOAD * INLINE
[Group, Value
A, 150
A, 150
B, 250
B, 250
C, 400
C, 400];



Все ясно, получается 1 таблица содержащая данные из 2-х загружаемых таблиц:
(http://d:%5CLoad.jpg)

Но вот когда добавляю опцию NoConcatenate то поведение становится для меня неожиданным:
(http://d:%5CNoConcatenate.jpg)

1. Почему в таблице только 3 записи, т.е. убираются дубликаты, хотя DISTINCT не используется ?

2. Почему не создаются 2-е таблицы QlikView, а только одна ?

Версия QlikView 12

Заранее спасибо !!!
Название: Re: Непонятное поведение QlikView при использовании
Отправлено: admin от 11 октября 2016, 07:07:39
Привет.
Вы смотрите на ключевую таблицу, с уникальными ключами.
А по таблицам все грузит как обычно, в каждую по 6 записей.
Название: Re: Непонятное поведение QlikView при использовании
Отправлено: Prive от 11 октября 2016, 04:43:53
У Вас создалась модель с синтетическим ключом. Чтобы его увидеть, нужно его создать самому.
Например, вот так:

Table1:
LOAD * INLINE
[Group, Value
A, 150
A, 150
B, 250
B, 250
C, 400
C, 400];
NoConcatenate
Table2:
LOAD * INLINE
[Group, Value
A, 150
A, 150
B, 250
B, 250
C, 400
C, 400];

// Добавляем ключ к таблице Table1
LEFT JOIN(Table1)
LOAD
Group,
Value,
Group & '|' & Value as $Key
Resident Table1;

// Добавляем ключ к таблице Table1
LEFT JOIN(Table2)
LOAD
Group,
Value,
Group & '|' & Value as $Key
Resident Table2;

NoConcatenate
LinkTable:
LOAD
Distinct
$Key,
Group,
Value
Resident Table1;

DROP Fields Group, Value from Table1;
DROP Fields Group, Value from Table2;


После это можно вывести количество значений поля $Key, их 12 (6 из одной таблицы и 6 из другой) :

(https://qliksense-forum.ru/qvf/proxy.php?request=http%3A%2F%2Fi12.pixs.ru%2Fstorage%2F1%2F7%2F2%2Fkeypng_5263905_23633172.png&hash=044008cd84cba3e58cf7dca4de1b04daa3eb195e) (http://pixs.ru/showimage/keypng_5263905_23633172.png)

Название: Re: Непонятное поведение QlikView при использовании
Отправлено: rsch от 11 октября 2016, 10:20:34
Спасибо за помощь, попробую разобраться..
Название: Re: Непонятное поведение QlikView при использовании
Отправлено: rsch от 13 октября 2016, 06:15:04
Всем большое спасибо!!! Стало гораздо понятней!
Название: Re: Непонятное поведение QlikView при использовании
Отправлено: LoryMax от 15 октября 2016, 05:50:40
я делаю декарто произведение из календаря и товаров (outer join).
Далее беру left join таблицы операций с товаром (они по каждому товару не каждый день).

В итоге у меня итоговая таблица не содержит всех дней. почему?
Название: Re: Непонятное поведение QlikView при использовании
Отправлено: LoryMax от 17 октября 2016, 07:23:02
Проблему нашел в используемом ключе для агрегирования. нужно было по сырым данным заново считать hash128(date, article, object). А брал уже рассчитанный хэш, где не было всем дат.