Join - Keep - QlikView
Об'єднання - операція об'єднання двох таблиць в одну. Записи результуючої таблиці є комбінації записів у вихідних таблицях. При цьому два такі записи, що становлять одну комбінацію в результуючій таблиці, як правило, мають загальне значення одного або декількох загальних полів. Таке поєднання називається природним. У QlikView об'єднання може виконуватися в скрипті, створюючи логічну таблицю.
Логіка QlikView розпізнаватиме не окремі таблиці, а результати об'єднання, які будуть представлені в одній внутрішній таблиці. У деяких випадках це потрібно, проте існують недоліки:
- Завантажені таблиці часто стають більшими, і програма QlikView працює повільніше.
- Деяка інформація може бути втрачена: частота (кількість записів) у вихідній таблиці може бути недоступна.
Функція Keep , яка дозволяє зменшити одну або обидві таблиці до перетину даних таблиць перед збереженням таблиць у програму QlikView , призначена зменшення кількості випадків, коли необхідно використовувати явні об'єднання.
Найпростішим способом створення об'єднання є використання префікса Join у скрипті, що дозволяє об'єднувати внутрішню таблицю з іншою іменованою таблицею або останньою створеною таблицею. Об'єднання матиме тип outer join і дозволить створити всі можливі поєднання значень із двох таблиць.
LOAD a, b, c від table1.csv;
join LOAD a, d from table2.csv;
Результуюча внутрішня таблиця має поля a, b, c та d. Кількість записів залежить від значень полів цих двох таблиць.
Однією з основних функцій програми QlikView єздатність до зв'язування таблиць замість їх об'єднання, що дозволяє скоротити використання пам'яті, підвищити швидкість обробки та гнучкість. Функція keep призначена скорочення кількості випадків необхідного використання явних об'єднань.
Префікс Keep між двома операторами LOAD або SELECT призводить до зменшення однієї або обох таблиць до перетину даних перед збереженням таблиць у програмі QlikView . Перед префіксом Keep слід задати одне з ключових слів: Inner, Left або Right. Вибір записів з таблиці здійснюється так само, як і при відповідному об'єднанні. Однак дві таблиці не поєднуються і зберігаються в програмі QlikView у вигляді двох окремих іменованих таблиць.
Перед префіксами Join та Keep у мові скриптів QlikView можна використовувати префікс Inner.
При використанні цього префікса перед префіксом Join об'єднання двох таблиць буде внутрішнім. Отримана таблиця містить лише поєднання двох таблиць, що включають повний набір даних з обох сторін.
Якщо цей префікс використовується перед Keep , він вказує, що дві таблиці слід зменшити до взаємного перетину, перш ніж вони зможуть бути збережені в програмі QlikView .
У цих таблицях використовуються вихідні таблиці Table1 і Table2:
Спочатку виконується Inner Join щодо таблиць, у результаті утворюється таблиця VTable , що містить лише один рядок, тільки один запис, що існує в обох таблицях, з даними з обох таблиць.
SELECT * від Table1;
inner join SELECT * з Table2;
Якщо замість цього виконується Inner Keep, таблиць все одно буде дві. Дві таблиці, очевидно, пов'язані у вигляді загального поля A .
SELECT * від Table1;
inner keep SELECT * від Table2;
Передпрефіксами Join та Keep у мові скриптів QlikView можна використовувати префікс left.
При використанні цього префікса перед префіксом Join об'єднання двох таблиць буде лівостороннім. Отримана таблиця містить лише поєднання двох таблиць, що включають повний набір даних з першої таблиці.
Якщо цей префікс використовується перед Keep , він вказує, що другу таблицю слід зменшити до області взаємного перетину з першою таблицею перед збереженням у програмі QlikView .
У цих таблицях використовуються вихідні таблиці Table1 і Table2:
Спочатку виконується Left Join щодо таблиць, внаслідок чого утворюється таблиця VTable , що містить усі рядки з таблиці Table1 , суміщені з полями з рядків, що збігаються в таблиці Table2 .
SELECT * від Table1;
left join SELECT * від Table2;

Якщо замість цього виконується Left Keep, таблиць все одно буде дві. Дві таблиці, очевидно, пов'язані у вигляді загального поля A .
SELECT * від Table1;
left keep SELECT * від Table2;
Перед префіксами Join та Keep у мові скриптів QlikView можна використовувати префікс right.
У разі використання цього префікса перед префіксом Join об'єднання двох таблиць буде правостороннім. Отримана таблиця містить тільки поєднання двох таблиць, що включають повний набір даних з другої таблиці.
Якщо цей префікс використовується перед Keep , він вказує, що першу таблицю слід зменшити до області взаємного перетину з другою таблицею перед збереженням у програмі QlikView .
У цих таблицях використовуються вихідні таблиці Table1 і Table2:
Спочатку виконується Right Join щодо таблиць, в результаті чого утворюється таблиця VTable, що містить усі рядки зтаблиці Table2, суміщені з полями з рядків, що збігаються в таблиці Table1.
SELECT * від Table1;
right join SELECT * з Table2;
Якщо замість цього виконується Right Keep, таблиць все одно буде дві. Дві таблиці, очевидно, пов'язані у вигляді загального поля A .