Ana içeriğe geç

IntervalMatch

Genişletilmiş IntervalMatch öneki, ayrık sayısal değerleri bir veya daha fazla sayısal aralıkla eleştiren ve isteğe bağlı olarak bir veya daha fazla ek anahtarın değerlerini eşleştiren bir tablo oluşturmak için kullanılır.

Söz Dizimi:  

IntervalMatch (matchfield)(loadstatement | selectstatement )

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

 

IntervalMatch öneki, aralıkları yükleyen bir LOAD veya SELECT deyiminden önce yerleştirilmelidir. Ayrık veri noktalarını içeren alan (aşağıdaki örnekte Zaman) ve ek anahtarlar, IntervalMatch önekinin bulunduğu deyimden önce Qlik Sense içine zaten yüklenmiş olmalıdır. Önek veritabanı tablosundan bu alanı tek başına okumaz. Önek, yüklenmiş aralıklar ve anahtarlar tablosunu ek sütun (ayrık sayısal veri noktaları) içeren tabloya dönüştürür. Bu işlem, aynı zamanda yeni tablo ayrık veri noktasının, aralığın ve anahtar alanlarının değerinin her olası kombinasyonu için bir kayıt içerecek şekilde kayıt sayısını genişletir

Aralıklar çakışabilir ve ayrık değerler tüm eşleşen aralıklara bağlanır.

IntervalMatch öneki anahtar alanlarıyla genişletildiğinde, ayrık sayısal değerleri bir veya daha fazla sayısal aralıkla eşleştirirken aynı zamanda bir veya daha fazla ek anahtarın değerlerini eşleştiren tablo oluşturmak için kullanılır.

Tanımlanmamış aralık sınırlarının göz ardı edilmesini önlemek için, NULL değerlerin aralığın alt ve üst sınırlarını oluşturan diğer alanlara eşlenmesine izin vermek gerekebilir. Bu da, NULL değerleri ayrık sayısal veri noktalarının herhangi birinden çok önce veya sonra olacak şekilde sayısal bir değerle değiştiren açık bir test ya da NullAsValue deyimi ile başarılabilir.

Bağımsız Değişkenler:  

Bağımsız Değişkenler
Bağımsız Değişken Açıklama
matchfield Aralıklara bağlanacak ayrık sayısal değerleri içeren alan.
keyfield Dönüştürme sırasında eşleştirilecek ek öznitelikleri içeren alan.
loadstatement or selectstatement Sonuçta birinci alanı her bir aralığın alt sınırını içeren, ikinci alanı her bir aralığın üst sınırını içeren ve anahtar eşleştirmesi kullanılması durumunda da üçüncü ve varsa sonraki alanları IntervalMatch deyiminde bulunan anahtar alanları içeren bir tablo ortaya çıkmalıdır. Aralıklar her zaman kapalıdır; yani uç noktaları her zaman aralığa dahil edilir. Sayısal olmayan sınırlar, aralığı göz ardı edilmiş (tanımlanmamış) olarak işler.

Örnek 1:  

Aşağıdaki iki tabloda, ilki birkaç ayrık olayı listelerken, ikincisi farklı siparişlerin üretiminin başlangıç ve bitiş zamanlarını tanımlar. IntervalMatch öneki aracılığıyla, örneğin hangi siparişlerin kesintilerden etkilendiğini ve hangi siparişlerin hangi vardiyalarda üretildiğini öğrenmek amacıyla iki tabloyu mantıksal olarak birbirine bağlamak mümkündür.

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;

 

Artık, OrderLog tablosu ek bir sütun içermektedir: Time. Kayıtların sayısı da genişlemiştir.

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

Örnek 2: (keyfield kullanarak)

Yukarıdaki örnekle aynı olup anahtar alan olarak ProductionLine eklenmiştir.

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;

 

Artık aşağıdaki gibi bir tablo kutusu oluşturulabilir:

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

Bu sayfa size yardımcı oldu mu?

Bu sayfa veya içeriği ile ilgili bir sorun; bir yazım hatası, eksik bir adım veya teknik bir hata bulursanız, bize bildirin, düzeltelim!