Сопоставление интервалов с дискретными данными

Префикс intervalmatch для операторов LOAD или SELECT используется для связывания дискретных числовых значений с одним или несколькими числовыми интервалами. Это очень полезная функция, которая может использоваться, например, в производственных средах, как показано в примере ниже.

Пример:

Взгляните на две расположенные ниже таблицы. В первой таблице задано время начала и конца выполнения различных заказов. Во второй таблице заданы некоторые отдельные события. Как связать отдельные события с заказами, чтобы знать, например, какие заказы были затронуты нарушениями и в какие смены были выполнены определенные заказы?

Table OrderLog

541

Table EventLog

542

Сначала загрузите две таблицы как обычно, затем свяжите поле Time с интервалами, определенными полями Start и End:

 SELECT * from OrderLog;
SELECT * from EventLog;
Intervalmatch (Time) SELECT Start,End from OrderLog;

Теперь в программе QlikView (Qlik Sense) можно создать таблицу следующим образом:

546

Отсюда видно, что в основном остановка линии повлияла на заказ A, а снижение скорости линии повлияло также на заказы B и C. Только заказы C и D были частично обработаны сменой Shift 2.

При использовании оператора intervalmatch обратите внимание на следующие моменты:

  • До оператора intervalmatch поле, которое содержит дискретные точки диаграммы (Time в приведенных выше примерах), уже должно быть считано в программу QlikView (Qlik Sense). Оператор intervalmatch сам не считывает это поле из таблицы базы данных!
  • Таблица, считанная с помощью оператора intervalmatch LOAD или SELECT, должна содержать ровно два поля (Start и End в примере, приведенном выше). Для установки связи с другими полями необходимо выполнить считывание из поля интервала, а также других дополнительных полей с помощью отдельного оператора LOAD или SELECT (первый оператор SELECT в указанном выше примере).
  • Интервалы всегда закрытые, т. е. конечные точки включены в интервал. Нечисловые пределы выводят игнорируемый интервал (неопределенный), а пределы со значением NULL расширяют интервалы до неопределенных значений (неограниченные интервалы).
  • Интервалы могут накладываться друг на друга, а дискретные значения будут связаны со всеми соответствующими интервалами.

ИСПОЛЬЗОВАНИЕ РАСШИРЕННОГО СИНТАКСИСА INTERVALMATCH ДЛЯ РАЗРЕШЕНИЯ НЕПОЛАДОК С МЕДЛЕННО ИЗМЕНЯЮЩИМИСЯ ИЗМЕРЕНИЯМИ

Расширенный синтаксис intervalmatch в QlikView (Qlik Sense) может использоваться для разрешения известных неполадок с медленно изменяющимися измерениями в исходных данных.

ПРИМЕР СКРИПТА:

 SET NullInterpret='';

IntervalTable:
LOAD
Key,
ValidFrom,
Team
from IntervalTable.xls;
NullAsValue FirstDate,LastDate;

Key:
LOAD
Key,
ValidFrom as FirstDate,
date(if(Key=previous(Key),
previous(ValidFrom) — 1)) as LastDate,
Team
RESIDENT IntervalTable order by Key, ValidFrom desc;

drop table IntervalTable;

Transact:
LOAD Key, Name, Date, Sales from Transact.xls;

INNER JOIN intervalmatch (Date,Key) LOAD FirstDate, LastDate, Key RESIDENT Key; 

Оператор nullinterpret необходим только при считывании данных из табличного файла, поскольку пропущенные значения определяются как пустые строки, а не как значения NULL.

Загрузка данных из оператора IntervalTable может привести к созданию следующей таблицы:

543

Оператор nullasvalue в QlikView (Qlik Sense) разрешает сопоставление значений NULL с полями в списке.

Создайте KeyFirstDateLastDate (поля атрибутов) с помощью элементов previous и order by, после чего параметр IntervalTable исключается и заменяется этой таблицей ключей.

Загрузка данных из оператора Transact может привести к созданию следующей таблицы:

544

Последовательно заданные операторы intervalmatch и inner join заменяют вышеуказанный ключ синтетическим, подсоединяемым к таблице оператором Transact, что позволяет создать следующую таблицу:

Комментирование и размещение ссылок запрещено.

Комментарии закрыты.

63 queries in 0,498 seconds