Accéder au contenu principal

IntervalMatch

Le préfixe IntervalMatch permet de créer une table faisant correspondre des valeurs numériques discrètes à un ou plusieurs intervalles numériques et, de manière facultative, faisant correspondre les valeurs d'une ou de plusieurs clés supplémentaires.

 

IntervalMatch (matchfield)(loadstatement | selectstatement )

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

 

Le préfixe IntervalMatch doit être placé avant une instruction LOAD ou SELECT qui charge les intervalles. Le champ contenant les points de données discrètes (Time dans l'exemple ci-dessous) et les clés supplémentaires doit déjà avoir été chargé dans Qlik Sense avant l'instruction contenant le préfixe IntervalMatch. Le préfixe ne lit pas lui-même ce champ à partir de la table de la base de données. Le préfixe transforme la table d'intervalles et de clés chargée dans une table contenant une colonne supplémentaire : les points de données numériques discrètes. Il étend par ailleurs le nombre d'enregistrements de sorte que la nouvelle table contienne un enregistrement par combinaison possible de points de données discrètes, d'intervalle et de valeur du ou des champs clés.

Les intervalles peuvent se superposer et les valeurs discrètes sont alors liées à tous les intervalles correspondants.

Lorsque le préfixe IntervalMatch est étendu à l'aide de champs clés, il permet de créer une table faisant correspondre des valeurs numériques discrètes à un ou plusieurs intervalles numériques tout en correspondant simultanément aux valeurs d'une ou de plusieurs clés supplémentaires.

Afin d'éviter la non-prise en compte des limites d'intervalle non définies, il peut s'avérer nécessaire d'autoriser le mappage des valeurs NULL à d'autres champs qui constituent les limites inférieure et supérieure de l'intervalle. Cette opération peut être gérée par l'instruction NullAsValue ou par un test explicite qui remplace les valeurs NULL par une valeur numérique bien avant ou après les points de données numériques discrètes.

 

Arguments
ArgumentDescription
matchfield Champ contenant les valeurs numériques discrètes à lier aux intervalles.
keyfield Champs contenant les attributs supplémentaires auxquels les points doivent correspondre dans la transformation.
loadstatementorselectstatementDoit produire une table dont les deux premiers champs contiennent respectivement les limites inférieure et supérieure de chaque intervalle et, en cas d'utilisation de la correspondance de clés, le troisième champ et les suivants contiennent les champs clés figurant dans l'instruction IntervalMatch. Les intervalles sont toujours fermés, c'est-à-dire que les points de fin sont inclus dans l'intervalle. Les limites non numériques génèrent l'intervalle à ignorer (limites non définies).

 

Dans les deux tables ci-dessous, la première dresse la liste d'un certain nombre d'événements discrets tandis que la deuxième définit les heures de début et de fin pour la génération de différentes commandes. Au moyen du préfixe IntervalMatch, il est possible de connecter les deux tables de manière logique afin de rechercher, par exemple, les commandes ayant subi des perturbations et les commandes ayant été traitées par telle ou telle équipe.

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;

 

La table OrderLog contient à présent une colonne supplémentaire : Time. Le nombre d'enregistrements est également étendu.

Table with additional column
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

(en utilisant keyfield)

Il s'agit du même exemple que ci-dessus, avec l'ajout de ProductionLine en tant que champ clé.

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;

 

Une zone table peut à présent être créée comme ci-dessous :

Tablebox example
ProductionLineTime EventCommentOrderStart End
P1

00:00

0Start of shift 1-- -
P201:000Start of shift 1---
P101:18 1Line stopA01:00 03:35
P102:23 2Line restart 50%A01:00 03:35
P104:15 3Line speed 100%B02:30 07:58
P104:15 3Line speed 100%C03:04 10:27
P108:00 4Start of shift 2C03:04 10:27
P209:00 4Start of shift 2D07:23 11:43
P111:43 5End of production-- -
P211:43 5End of productionD07:23 11:43

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – dites-nous comment nous améliorer !