Above
Above() , tablodaki bir sütun segmenti dahilinde geçerli satırın üstündeki bir satırda ifadeyi değerlendirir. Hesaplandığı satır offset değerine göre değişir (varsa) ve varsayılan ayar doğrudan üstündeki satırdır. Tablolar dışındaki grafikler için Above(), grafiğin düz tablo eşdeğerinde geçerli satırın üstündeki satır için değerlendirme yapar.
Söz Dizimi:
Above([TOTAL] expr [ , offset [,count]])
Dönüş verileri türü: dual
Bağımsız Değişkenler:
- expr: Hesaplanacak verileri içeren ifade veya alan.
- offset: 0'dan büyük bir offset n belirtildiğinde, ifadenin değerlendirmesi geçerli satırdan n satır daha yukarı taşınır. Offset 0 olarak belirtildiğinde, ifade geçerli satır üzerinde değerlendirilir. Negatif offset sayısı belirtilmesi, Above fonksiyonunun karşılık gelen pozitif offset sayısı ile Below fonksiyonu gibi çalışmasını sağlar.
- count: 1'den büyük üçüncü bir count bağımsız değişkeni belirtildiğinde, fonksiyon ilk hücreden yukarı doğru sayarak her count tablo satırı için bir adet olmak üzere bir count değerleri aralığı döndürür. Bu biçimde, fonksiyon herhangi bir özel aralık fonksiyonuna yönelik bir bağımsız değişken olarak kullanılabilir. Aralık fonksiyonları
- TOTAL: Tablo tek boyutluysa veya TOTAL niteleyicisi bir bağımsız değişken olarak kullanılıyorsa, geçerli sütun segmenti her zaman sütunun tamamına eşittir.
Bir sütun segmentinin ilk satırında, bunun üzerinde bir satır olmadığından, NULL değeri döndürülür.
Sınırlamalar:
-
Yinelemeli çağrılar NULL sonucunu döndürür.
-
Grafiğin ifadelerinden herhangi birinde bu grafik fonksiyonu kullanıldığında grafiklerde y değerlerine veya tablolarda ifade sütunlarına göre sıralamaya izin verilmez. Bu nedenle, söz konusu sıralama alternatifleri otomatik olarak devre dışı bırakılır. Bir görselleştirmede veya tabloda bu grafik fonksiyonunu kullandığınızda, görselleştirmenin sıralaması bu fonksiyonun sıralanmış girdisine geri döner.
Örnekler ve sonuçlar:
Örnek 1:
Customer | Sum(Sales) | Above(Sum(Sales)) | Sum(Sales) + Above(Sum(Sales)) | Above offset 3 | Higher? |
---|---|---|---|---|---|
- | 2566 | - | - | - | - |
Astrida | 587 | - | - | - | - |
Betacab | 539 | 587 | 1126 | - | - |
Canutility | 683 | 539 | 1222 | - | Higher |
Divadip | 757 | 683 | 1440 | 1344 | Higher |
Bu örnekte gösterilen tablo grafiğinin temsilinde tablo, Customer boyutundan ve şu hesaplamalardan oluşturulmuştur: Sum(Sales) ve Above(Sum(Sales)).
Above(Sum(Sales)) sütunu, üzerinde başka bir satır olmaması nedeniyle, Astrida öğesini içeren Customer satırı için NULL döndürür. Betacab satırının sonucu Sum(Sales) için Astrida değerini ve Canutility sonucu da Sum(Sales) için Betacab değerini gösterir ve bu böyle devam eder.
Sum(Sales)+Above(Sum(Sales)) etiketli sütun için, Betacab satırı Sum(Sales) + Betacab için Astrida değerlerinin toplamından (539+587) elde edilen sonucu gösterir. Canutility satırının sonucu, Canutility + Betacab için Sum(Sales) değerlerinin toplamından (683+539) elde edilen sonucu gösterir.
Sum(Sales)+Above(Sum(Sales), 3) ifadesi kullanılarak oluşturulmuş Above offset 3 etiketli hesaplama, offset bağımsız değişkenine (3 olarak ayarlı) sahiptir ve satırdaki değeri geçerli satırdan üç satır yukarı taşıma etkisini oluşturur. Geçerli Customer öğesine ilişkin Sum(Sales) değerini üç satır yukarıdaki Customer öğesinin değerine ekler. İlk üç Customer satırı için döndürülen değerler null olur.
Tabloda ayrıca, biri Sum(Sales)+Above(Sum(Sales)) ifadesinden oluşturulan ve biri de etiketli Higher? (IF(Sum(Sales)>Above(Sum(Sales)), 'Higher') ifadesinden oluşturulan) olmak üzere daha karmaşık hesaplamalar gösterilmektedir.
Örnek 2:
Bu örnekte gösterilen tablo grafiklerinin temsilinde grafiklere daha çok boyut eklenmiştir: Month ve Product. Birden fazla boyutu olan grafikler için Above, Below, Top ve Bottom fonksiyonlarını içeren ifadelerin sonuçları, sütun boyutlarının QlikView tarafından sıralanma düzenine göre değişir. QlikView, en son sıralanan boyuttan kaynaklanan sütun segmentlerini temel alarak fonksiyonları değerlendirir. Sütun sırası Sırala seçeneğinin altından kontrol edilir ve bu sıranın mutlaka sütunların tabloda göründükleri sıra olması gerekmez.
Örnek 2 için tablo grafiğine ait aşağıdaki temsilde, son sıralanan boyut Month olduğundan Above fonksiyonu aylara dayalı olarak değerlendirme yapar. Her bir aya (Jan ila Aug) ilişkin her Product değeri için bir dizi sonuç vardır (sütun segmenti). Bunu, bir sonraki Product için her bir Month değerine ait olmak üzere, sonraki sütun segmentine ilişkin bir seri takip eder. Her bir Product öğesine ilişkin her Customer değeri için bir sütun segmenti olacaktır.
Customer | Product | Month | Sum(Sales) | Above(Sum(Sales)) |
---|---|---|---|---|
- | - | - | 2566 | - |
Astrida | AA | Jan | 46 | - |
Astrida | AA | Feb | 60 | 46 |
Astrida | AA | Mar | 70 | 60 |
Astrida | AA | Apr | 13 | 70 |
Astrida | AA | May | 78 | 13 |
Astrida | AA | Jun | 20 | 78 |
Astrida | AA | Jul | 45 | 20 |
Astrida | AA | Aug | 65 | 45 |
Örnek 3:
Örnek 3 için tablo grafiğine ait temsilde en son sıralanan boyut Product boyutudur. Bu da Product boyutunun, özellikler panelindeki Sıralama sekmesinde 3. konuma taşınmasıyla yapılır. Above fonksiyonu her bir Product için değerlendirilir ve yalnızca iki ürün bulunduğundan (AA ve BB), her bir seride tek bir null olmayan sonuç vardır. Jan ayına ilişkin BB satırında Above(Sum(Sales)) değeri 46'dır. AA satırı için değer null'dur. Herhangi bir ay için her bir AA satırındaki değer, AA satırının üstünde başka bir Product değeri bulunmaması nedeniyle her zaman null çıkar. İkinci seri AA ve BB satırlarında Feb ayı ve Customer değeri Astrida için değerlendirilir. Astrida için tüm aylar değerlendirildiğinde, bu dizi ikinci CustomerBetacab için tekrarlanır ve bu böyle devam eder.
Customer | Product | Month | Sum(Sales) | Above(Sum(Sales)) |
---|---|---|---|---|
- | - | - | 2566 | - |
Astrida | AA | Jan | 46 | - |
Astrida | BB | Jan | 46 | 46 |
Astrida | AA | Feb | 60 | - |
Astrida | BB | Feb | 60 | 60 |
Astrida | AA | Mar | 70 | - |
Astrida | BB | Mar | 70 | 70 |
Astrida | AA | Apr | 13 | - |
Astrida | BB | Apr | 13 | 13 |
Örnek 4:
Above fonksiyonu, aralık fonksiyonları için giriş olarak kullanılabilir. Örnek: RangeAvg (Above(Sum(Sales),1,3)).
Above() fonksiyonuna ait bağımsız değişkenlerde offset, 1 olarak ve count, 3 olarak ayarlıdır. Fonksiyon, sütun segmentinde geçerli satırın hemen üstündeki üç satırda (satır varsa) Sum(Sales) ifadesinin sonuçlarını bulur. Bu üç değer, sağlanan sayı aralığındaki değerlerin ortalamasını bulan RangeAvg() fonksiyonu için giriş olarak kullanılır.
Boyut olarak Customer öğesini içeren bir tablo RangeAvg() ifadesi için aşağıdaki sonuçları verir.
Customer | RangeAvg (Above(Sum(Sales),1,3)) |
---|---|
Astrida | - |
Betacab | 587 |
Canutility | 563 |
Divadip | 603 |
Örneklerde kullanılan veriler:
Monthnames:
LOAD * INLINE [
Month, Monthnumber
Jan, 1
Feb, 2
Mar, 3
Apr, 4
May, 5
Jun, 6
Jul, 7
Aug, 8
Sep, 9
Oct, 10
Nov, 11
Dec, 12
];
Sales2013:
crosstable (Month, Sales) LOAD * inline [
Customer|Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec
Astrida|46|60|70|13|78|20|45|65|78|12|78|22
Betacab|65|56|22|79|12|56|45|24|32|78|55|15
Canutility|77|68|34|91|24|68|57|36|44|90|67|27
Divadip|57|36|44|90|67|27|57|68|47|90|80|94
] (delimiter is '|');
Ayları doğru düzende sıralatmak için, grafiklerinizi oluşturduğunuzda grafik özelliklerinin Sort sekmesine gidin ve Sort by seçeneğinin altında Expression onay kutusunu işaretleyin. İfade kutusuna Monthnumber yazın.