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ş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. |
loadstatementorselectstatement | 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.
Artık, OrderLog tablosu ek bir sütun içermektedir: Time. Kayıtların sayısı da genişlemiştir.
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.
Artık aşağıdaki gibi bir tablo kutusu oluşturulabilir:
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 |