Связи между логическими таблицами
В базе данных может содержаться несколько таблиц. Каждая таблица может быть рассмотрена как список элементов, при этом каждая запись в списке представляет собой экземпляр объекта определенного типа.
Пример:
Если две таблицы являются списками различных элементов, например одна из таблиц является списком клиентов, а другая — списком счетов, и обе таблицы имеют общее поле, например номер клиента, это обычно означает, что между двумя таблицами существует взаимосвязь. В стандартных инструментах запросов SQL две таблицы практически всегда должны быть объединены.
Таблицы, определенные в скрипте Qlik Sense, называются логическими таблицами. В программе Qlik Sense создаются связи между таблицами на основе имен полей, а также выполняются объединения при выборе элементов, например при выборе значений полей в поле фильтра.
Поэтому связь практически аналогична объединению. Единственным различием между ними является то, что объединение выполняется при выполнении скрипта, при этом в результате объединения обычно создается логическая таблица. Связь создается после создания логической таблицы: связи всегда создаются между логическими таблицами.
Сравнение связи Qlik Sense с естественным внешним объединением SQL
Связь Qlik Sense напоминает естественное внешнее объединение SQL. Однако связь имеет более общие свойства: внешнее объединение в SQL обычно является односторонней проекцией одной таблицы на другой. Результатом связи всегда является полное (двунаправленное) стандартное внешнее объединение.
Информация о частотности в полях для связывания
В использовании большинства полей для связывания существуют некоторые ограничения. Это поля, которые являются общими в двух или нескольких таблицах. Если поле содержится в нескольких таблицах, в программе Qlik Sense возникнет проблема определения таблицы для использования в вычислениях частотности данных.
В программе Qlik Sense выполняется анализ данных на предмет однозначного способа идентификации основной таблицы, в которой будут производиться вычисления (иногда такой способ есть), однако в большинстве случаев программой может быть сделано лишь предположение. Поскольку неверное предположение может привести к неисправимым результатам (в вычислениях Qlik Sense может возникнуть ошибка), программа разработана таким образом, чтобы не допустить определенные операции, когда интерпретация данных в связываемых полях не является однозначной.
Ограничения для связывания полей
- В фильтре, в котором отображается поле, не может отображаться частота.
- Для большинства статистических сущностей блоки статистики недоступны.
- В диаграммах невозможно создавать выражения, содержащие функции, зависимые от данных частоты (такие как функции Sum, Count и значение Average) для поля, если модификатор Distinct неактивен. После каждой повторной загрузки все выражения диаграммы в программе Qlik Sense будут исследованы на предмет наличия неоднозначных случаев, возникших в результате изменений структур данных. Если будут найдены неоднозначные выражения, на экране отобразится предупреждение и это выражение будет деактивировано. Пока проблема не будет устранена, это выражение невозможно снова активировать. Если активирован файл журнала, все неоднозначные выражения будут включены в файл журнала.
Обходной прием
Существует простой способ преодоления этих ограничений. Еще раз загрузите поле из таблицы, в которой должно быть выполнено вычисление частот, и сохраните его с новым именем. Затем новое поле можно использовать для фильтра частот, блока статистики или для вычислений в диаграммах.