IntervalMatch | QlikView Справка
Перейти к основному содержимому

IntervalMatch

Последнее обновление: 07.10.2026

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

IntervalMatch (matchfield)(loadstatement | selectstatement )

IntervalMatch (matchfield,keyfield1 [ , keyfield2, ... keyfield5 ] ) (loadstatement | selectstatement )

Префикс IntervalMatch устанавливается перед оператором LOAD или SELECT, который загружает интервалы. До оператора с префиксом QlikView поле, которое содержит дискретные точки диаграммы (Time в приведенном ниже примере) и дополнительные ключи, уже должно быть загружено в IntervalMatch. Данный префикс не считывает это поле из таблицы базы данных сам по себе. Он преобразует загруженную таблицу интервалов и ключей в таблицу, содержащую дополнительный столбец дискретных числовых точек диаграммы. Здесь также разворачиваются различные записи, что позволяет включать в новую таблицу одну запись на возможную комбинацию дискретных точек диаграммы, интервалов и значений ключевых полей.

Интервалы могут накладываться друг на друга, а дискретные значения будут связаны со всеми соответствующими интервалами.

Расширенный префикс IntervalMatch используется для создания таблиц связывания дискретных числовых значений с одним или несколькими числовыми интервалами, а также связывания значений с одним или несколькими дополнительными ключами. Это очень мощная и гибкая функциональность, которую можно использовать для связывания транзакций с изменяющимися в динамике по времени измерениями: медленно меняющиеся измерения.

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

Аргументы IntervalMatch
Аргумент Описание
matchfield Поле, содержащее дискретные числовые значения, которые нужно связать с интервалами.
keyfield Поля, содержащие дополнительные атрибуты, сопоставляемые при преобразовании.
loadstatement or selectstatement Должна быть получена таблица, где первое поле содержит нижнюю границу каждого интервала, второе поле содержит верхнюю границу каждого интервала, а в случае использования сопоставления ключей третье и все последующие поля содержат ключевые поля, присутствующие в операторе IntervalMatch. Интервалы всегда закрытые, т. е. конечные точки включены в интервал. Нечисловые границы приводят к тому, что интервал игнорируется (неопределенный).

Рассмотрим две таблицы. В первой таблице дано время начала и конца выполнения различных заказов. Во второй таблице находится список дискретных событий. С помощью префикса IntervalMatch возможно логически связать две таблицы для того, чтобы узнать, например, на какие заказы повлияли нарушения в работе, а также какие заказы были обработаны в какие смены.

EventLog:
LOAD * Inline [
Time, Event, Comment
00:00, 0, Start of shift 1
01:18, 1, Line stop
02:23, 2, Line restart 50%
04:15, 3, Line speed 100%
08:00, 4, Start of shift 2
11:43, 5, End of production
];

OrderLog:
LOAD * INLINE [
Start, End, Order
01:00, 03:35, A
02:30, 07:58, B
03:04, 10:27, C
07:23, 11:43, D
];

//Link the field Time to the time intervals defined by the fields Start and End.
Inner Join IntervalMatch ( Time )
LOAD Start, End
Resident OrderLog;

Результат:

Теперь таблица OrderLog содержит дополнительный столбец: Time. Число записей также увеличивается.

Example 1
Time Start End Order

00:00

- - -
01:18 01:00 03:35 A
02:23 01:00 03:35 A
04:15 02:30 07:58 B
04:15 03:04 10:27 C
08:00 03:04 10:27 C
08:00 07:23 11:43 D
11:43 07:23

11:43

D

Пример 1: ( с помощью префикса keyfield)

Пример аналогичен приведенному выше, только в качестве ключевого поля добавляется ProductionLine .

EventLog:
LOAD * Inline [
Time, Event, Comment, ProductionLine
00:00, 0, Start of shift 1, P1
01:00, 0, Start of shift 1, P2
01:18, 1, Line stop, P1
02:23, 2, Line restart 50%, P1
04:15, 3, Line speed 100%, P1
08:00, 4, Start of shift 2, P1
09:00, 4, Start of shift 2, P2
11:43, 5, End of production, P1
11:43, 5, End of production, P2
];
OrderLog:
LOAD * INLINE [
Start, End, Order, ProductionLine
01:00, 03:35, A, P1
02:30, 07:58, B, P1
03:04, 10:27, C, P1
07:23, 11:43, D, P2
];
//Link the field Time to the time intervals defined by the fields Start and End and match the values
// to the key ProductionLine.
Inner Join
IntervalMatch ( Time, ProductionLine )
LOAD Start, End, ProductionLine
Resident OrderLog;

Результат:

Теперь простую таблицу можно создать следующим образом:

Example 2
ProductionLine Time Event Comment Order Start End
P1

00:00

0 Start of shift 1 - - -
P2 01:00 0 Start of shift 1 - - -
P1 01:18 1 Line stop A 01:00 03:35
P1 02:23 2 Line restart 50% A 01:00 03:35
P1 04:15 3 Line speed 100% B 02:30 07:58
P1 04:15 3 Line speed 100% C 03:04 10:27
P1 08:00 4 Start of shift 2 C 03:04 10:27
P2 09:00 4 Start of shift 2 D 07:23 11:43
P1 11:43 5 End of production - - -
P2 11:43 5 End of production D 07:23 11:43

Помогла ли вам эта страница?

Если вы обнаружили какую-либо проблему на этой странице или с ее содержанием — будь то опечатка, пропущенный шаг или техническая ошибка, сообщите нам об этом!

Присоединяйтесь к программе модернизации аналитики

Remove banner from view

Модернизируйте ваши важные приложения QlikView без ущерба с помощью программы модернизации аналитики. Щелкните здесь для получения дополнительной информации или свяжитесь с нами: ampquestions@qlik.com