IntervalMatch

IntervalMatch プレフィックスを使うと、不連続数値を 1 つ以上の数値間隔に一致させるテーブル、そしてオプションとして 1 つ以上の追加キーの値を一致させるテーブルを作成できます。

Syntax:  

IntervalMatch (matchfield)(loadstatement | selectstatement )

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

 

IntervalMatch プレフィックスは、間隔をロードする LOAD または SELECT ステートメントの前に配置する必要があります。不連続データ ポイントを含む項目 (以下の例では Time) および追加キーは、IntervalMatch プレフィックスを含むステートメントの前に Qlik Sense にロードされていなければなりません。このプレフィックスはデータベース テーブルからこの項目を読み取るのではなく、ロードされた間隔テーブルとキーを変換して追加列 (不連続数値データ点) を含むテーブルを生成します。また、新しいテーブルで不連続データ ポイントと間隔、キー項目の値の組み合わせごとにレコードが 1 つ存在するようレコード数を増やします。

間隔は重なる場合があり、不連続値は一致する間隔すべてにリンクされます。

IntervalMatch プレフィックスがキー項目で展開される際、プレフィックスを使用して、不連続数値を 1 つ以上の数値間隔と照合し、同時に 1 つまたは複数の追加キーを照合するテーブルが作成されます。

未定義の間隔範囲が無視されないようにするには、間隔の下限または上限を構成する項目への NULL 値のマッピングを許可しなければならない可能性があります。その場合は、NullAsValue ステートメントを使用するか、不連続数値データ ポイントの前または後で NULL 値を数値に置き換える明示的なテストを実施します。

Arguments:  

引数 説明
matchfield 間隔にリンクする不連続の数値が含まれた項目。
keyfield 変換で一致させる追加属性が含まれた項目。
loadstatement or selectstatement 最初の項目に各間隔の下限、2 つ目の項目に各間隔の上限を含むテーブルが生成されます。キー一致を使用している場合、3 つ目以降の項目には IntervalMatch ステートメントのキー項目が含まれます。間隔は常に閉じているので、終端は間隔に含まれます。数値以外の範囲では間隔が無視されます (未定義として対処)。

Example 1:  

下記の 2 つのテーブルのうち、最初のテーブルは個別イベントの数を表示し、2 番目のテーブルは注文の製造開始時間と終了時間を定義します。IntervalMatch プレフィックスを使用すると、2 つのテーブルが論理的に接続され、イベントの影響を受けた注文を特定したり、どのシフトでどの注文が処理されたかを確認することができます。

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 が含まれるようになりました。レコードの数も展開されます。

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

Example 2: (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;

 

テーブル ボックスが次のように作成できるようになりました。

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