Ga naar hoofdinhoud

IntervalMatch

Het prefix IntervalMatch wordt gebruikt voor het maken van een tabel waarin discrete numerieke waarden worden gekoppeld aan een of meer numerieke intervallen, en waarin de waarden optioneel worden gekoppeld aan een of meer extra sleutels.

Syntaxis:  

IntervalMatch (matchfield)(loadstatement | selectstatement )

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

 

Het prefix IntervalMatch moet voor een LOAD- of SELECT-opdracht worden geplaatst waarmee de intervallen worden geladen. Het veld met de discrete gegevenspunten (Tijd in het voorbeeld verderop) en extra sleutels moet al in Qlik Sense geladen zijn vóór de opdracht met het prefix IntervalMatch. Het prefix leest dit veld niet zelf uit de databasetabel. Het prefix zet de geladen tabel met intervallen en sleutels om in een tabel die een extra kolom bevat: de discrete numerieke gegevenspunten. Tevens wordt het aantal records zodanig uitgebreid dat de nieuwe tabel één record per mogelijke combinatie van discreet gegevenspunt, interval en waarde van het sleutelveld of de sleutelvelden bevat.

De intervallen kunnen elkaar overlappen en de discrete waarden worden aan alle relevante intervallen gekoppeld.

Als het prefix IntervalMatch wordt uitgebreid met sleutelvelden, wordt het gebruikt voor het maken van een tabelkoppeling van discrete numerieke waarden met een of meer numerieke intervallen, terwijl tegelijkertijd de waarden van een of meer extra sleutels worden gekoppeld.

Om te voorkomen dat ongedefinieerde intervallimieten worden genegeerd, moet u mogelijk NULL-waarden toewijzen aan andere velden met de onderste en bovenste limieten voor het interval. Dit kan worden afgehandeld met de opdracht NullAsValue of door een expliciete test waarbij NULL-waarden worden vervangen door een numerieke waarde ruim voor of na een van de discrete numerieke gegevenspunten.

Argumenten:  

Argumenten
Argument Beschrijving
matchfield Het veld met de discrete numerieke waarden voor koppeling aan intervallen.
keyfield Velden met de extra kenmerken die bij de transformatie moeten worden gekoppeld.
loadstatement or selectstatement Moet resulteren in een tabel waarvan het eerste veld de laagste limiet van elk interval bevat en het twee veld de hoogste limiet. Als sleutelkoppeling wordt gebruikt, moeten het derde veld en de volgende velden de sleutelvelden bevatten van de opdracht IntervalMatch. De intervallen zijn altijd gesloten, dat wil zeggen dat de eindpunten in het interval zijn opgenomen. Niet-numerieke limieten zorgen ervoor dat het interval buiten beschouwing wordt geladen (ongedefinieerd).

Voorbeeld 1:  

In de twee onderstaande tabellen wordt in de eerste een aantal discrete gebeurtenissen weergegeven en worden in de tweede de begin- en eindtijden voor de productie van verschillende bestellingen gedefinieerd. Met behulp van het prefix IntervalMatch kan een logische verbinding tot stand worden gebracht tussen de twee tabellen om bijvoorbeeld uit te zoeken welke bestellingen last hadden van storingen en welke bestellingen door welke ploegen zijn verwerkt.

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;

 

De tabel OrderLog bevat nu een extra kolom: Time. Het aantal records is eveneens uitgebreid.

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

Voorbeeld 2: (met keyfield)

Hetzelfde voorbeeld als boven, waarbij ProductionLine is toegevoegd als sleutelveld.

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;

 

Het volgende tabelvak kan nu worden gemaakt:

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

Was deze pagina nuttig?

Als u problemen ervaart op deze pagina of de inhoud onjuist is – een typfout, een ontbrekende stap of een technische fout – laat het ons weten zodat we dit kunnen verbeteren!