Zu Hauptinhalt springen

IntervalMatch

Mithilfe des Zusatzes IntervalMatch wird eine Tabelle angelegt, in der die diskreten numerischen Werte mit einem oder mehreren numerischen Intervallen abgeglichen werden und optional die Werte von einem oder mehreren zusätzlichen Schlüsseln.

Syntax:  

IntervalMatch (matchfield)(loadstatement | selectstatement )

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

 

Der Zusatz IntervalMatch muss vor dem Befehl LOAD oder SELECT angelegt werden, mit dem die Intervalle geladen werden. Das Feld, das die diskreten Datenpunkte (im Beispiel unten die Uhrzeit) und zusätzlichen Schlüssel enthält, muss vor dem Befehl mit dem IntervalMatch-Zusatz bereits in Qlik Sense geladen sein. Der Zusatz liest dieses Feld nicht selbstständig in der Datenbanktabelle. Der Zusatz formt die geladene Intervalltabelle und Schlüssel in eine Tabelle um, die eine zusätzliche Spalte enthält: die diskreten numerischen Datenpunkte. Er erweitert auch die Anzahl der Datensätze, sodass die neue Tabelle über einen Datensatz für jede mögliche Kombination diskreter Datenpunkte, des Intervalls und des Werts der Schlüsselfelder verfügt.

Wenn sich die Intervalle überschneiden, werden die Werte jedem passenden Intervall zugeordnet.

Wenn der IntervalMatch -Zusatz mit Schlüsselfeldern erweitert wird, wird damit eine Tabelle mit abgeglichenen numerischen Werten für ein oder mehrere numerische Intervalle erzeugt, wobei gleichzeitig die Werte eines oder mehrerer zusätzlicher Schlüssel abgeglichen werden.

Um zu verhindern, dass nicht definierte Intervallbeschränkungen ignoriert werden, sollte es möglich sein, NULL-Werte anderen Feldern zuzuordnen, welche die untere oder obere Grenze des Intervalls bilden. Dieser Vorgang kann über den Befehl NullAsValue oder einen Test erfolgen, in dem NULL-Werte deutlich vor oder nach den diskreten numerischen Datenpunkten durch einen numerischen Wert ersetzt werden.

Argumente:  

Argumente
Argument Beschreibung
matchfield Das Feld, dessen numerische Werte in Intervallen gruppiert werden.
keyfield Felder, welche die zusätzlichen Attribute enthalten, die während der Umformung abgeglichen werden.
loadstatement or selectstatement Muss in einer Tabelle resultieren, in der das erste Feld den unteren Grenzwert jedes Intervalls, das zweite Feld den oberen Grenzwert jedes Intervalls und – bei Verwendung von Schlüsselwortabgleich – das dritte und alle folgenden Felder das/die Schlüsselfeld(er) enthalten, die im IntervalMatch-Befehl enthalten sind. Die Intervalle sind abgeschlossen, d. h. die Grenzwerte sind in den Intervallen enthalten. Nicht numerische Beschränkungen bewirken, dass das Intervall nicht berücksichtigt wird (undefiniert).

Beispiel 1:  

In den beiden unten stehenden Tabellen zeigt die erste Tabelle eine Reihe diskreter Ereignisse und die zweite den Bearbeitungsstart und das Bearbeitungsende verschiedener Aufträge an. Mithilfe des Zusatzes IntervalMatch werden die Tabellen logisch verknüpft, um z. B. herauszufinden, welche Aufträge von welchen Ereignissen betroffen waren und welche Aufträge von welcher Schicht verarbeitet wurden.

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;

 

Die TabelleOrderLog enthält nun eine zusätzliche Spalte: Time. Der Anzahl der Datensätze wird ebenfalls erweitert.

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

Beispiel 2: (verwenden von keyfield)

Gleiches Beispiel wie oben, zusätzlich mit ProductionLine als Schlüsselfeld.

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;

 

Nun kann die folgende Tabellenbox erzeugt werden:

Tablebox example
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

Hat diese Seite Ihnen geholfen?

Wenn Sie Probleme mit dieser Seite oder ihren Inhalten feststellen – einen Tippfehler, einen fehlenden Schritt oder einen technischen Fehler –, teilen Sie uns bitte mit, wie wir uns verbessern können!