Добрый день!!!
Разбираю статью 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
Заранее спасибо !!!
Привет.
Вы смотрите на ключевую таблицу, с уникальными ключами.
А по таблицам все грузит как обычно, в каждую по 6 записей.
У Вас создалась модель с синтетическим ключом. Чтобы его увидеть, нужно его создать самому.
Например, вот так:
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)
Спасибо за помощь, попробую разобраться..
Всем большое спасибо!!! Стало гораздо понятней!
я делаю декарто произведение из календаря и товаров (outer join).
Далее беру left join таблицы операций с товаром (они по каждому товару не каждый день).
В итоге у меня итоговая таблица не содержит всех дней. почему?
Проблему нашел в используемом ключе для агрегирования. нужно было по сырым данным заново считать hash128(date, article, object). А брал уже рассчитанный хэш, где не было всем дат.