Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
Декабрь 18, 2017, 07:47:02 pm

Автор Тема: Непонятное поведение QlikView при использовании  (Прочитано 1608 раз)

Оффлайн rsch

  • Новичок
  • *
  • Сообщений: 3
  • Страна: ru
  • Рейтинг: +0/-0
    • Просмотр профиля
Добрый день!!!

Разбираю статью 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-х загружаемых таблиц:


Но вот когда добавляю опцию NoConcatenate то поведение становится для меня неожиданным:


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

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

Версия QlikView 12

Заранее спасибо !!!

Оффлайн admin

  • Administrator
  • Hero Member
  • *****
  • Сообщений: 1005
  • Страна: ru
  • Рейтинг: +103/-0
    • Просмотр профиля
Re: Непонятное поведение QlikView при использовании
« Ответ #1 : Октябрь 11, 2016, 07:07:39 am »
Привет.
Вы смотрите на ключевую таблицу, с уникальными ключами.
А по таблицам все грузит как обычно, в каждую по 6 записей.

Оффлайн Prive

  • Новичок
  • *
  • Сообщений: 44
  • Страна: ru
  • Рейтинг: +21/-0
    • Просмотр профиля
Re: Непонятное поведение QlikView при использовании
« Ответ #2 : Октябрь 11, 2016, 04:43:53 pm »
У Вас создалась модель с синтетическим ключом. Чтобы его увидеть, нужно его создать самому.
Например, вот так:

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 из другой) :




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

Re: Непонятное поведение QlikView при использовании
« Ответ #2 : Октябрь 11, 2016, 04:43:53 pm »

Оффлайн rsch

  • Новичок
  • *
  • Сообщений: 3
  • Страна: ru
  • Рейтинг: +0/-0
    • Просмотр профиля
Re: Непонятное поведение QlikView при использовании
« Ответ #3 : Октябрь 11, 2016, 10:20:34 pm »
Спасибо за помощь, попробую разобраться..

Оффлайн rsch

  • Новичок
  • *
  • Сообщений: 3
  • Страна: ru
  • Рейтинг: +0/-0
    • Просмотр профиля
Re: Непонятное поведение QlikView при использовании
« Ответ #4 : Октябрь 13, 2016, 06:15:04 pm »
Всем большое спасибо!!! Стало гораздо понятней!

Оффлайн LoryMax

  • Наставник
  • **
  • Сообщений: 66
  • Страна: ru
  • Рейтинг: +9/-0
    • Просмотр профиля
Re: Непонятное поведение QlikView при использовании
« Ответ #5 : Октябрь 15, 2016, 05:50:40 pm »
я делаю декарто произведение из календаря и товаров (outer join).
Далее беру left join таблицы операций с товаром (они по каждому товару не каждый день).

В итоге у меня итоговая таблица не содержит всех дней. почему?

Оффлайн LoryMax

  • Наставник
  • **
  • Сообщений: 66
  • Страна: ru
  • Рейтинг: +9/-0
    • Просмотр профиля
Re: Непонятное поведение QlikView при использовании
« Ответ #6 : Октябрь 17, 2016, 07:23:02 am »
Проблему нашел в используемом ключе для агрегирования. нужно было по сырым данным заново считать hash128(date, article, object). А брал уже рассчитанный хэш, где не было всем дат.

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

Re: Непонятное поведение QlikView при использовании
« Ответ #6 : Октябрь 17, 2016, 07:23:02 am »