FirstSortedValue - kod fonksiyonu

FirstSortedValue(), belirtilmesi halinde rank öğesinin de hesaba katılmasıyla, sort_weight bağımsız değişkeninin sonucuna karşılık gelen value içinde belirtilen ifadeden değeri döndürür. Birden fazla sonuç değeri, belirtilen rank için aynı sort_weight öğesini paylaşıyorsa fonksiyon NULL döndürür.

Sıralanan değerler bir group by cümlesi ile tanımlandığı şekilde bir dizi kayıt üzerinde yinelenir veya group by cümlesi tanımlanmazsa tüm veri kümesi çapında toplanır.

Syntax:  

FirstSortedValue ([ distinct ] value, sort-weight [, rank ])

Return data type: dual

Arguments:  

Bağımsız Değişken Açıklama
value Expression Fonksiyon, sort_weight sıralamasının sonucuna karşılık gelen value ifadesinin değerini bulur.
sort-weight Expression Sıralanacak verileri içeren ifade. İlk (en düşük) sort_weight değeri bulunur (value ifadesinin karşılık gelen değeri bu değerden belirlenir). sort_weight öğesinin önüne bir eksi işareti koyarsanız, fonksiyon son (en yüksek) sıralanan değeri döndürür.
rank Expression

1'den büyük bir rank "n" belirttiğinizde n. sıralanan değeri alırsınız.

distinct

Fonksiyon bağımsız değişkenlerinden önce DISTINCT sözcüğü varsa fonksiyon bağımsız değişkenlerinin değerlendirilmesinden kaynaklanan çoğaltmalar göz ardı edilir.

Examples and results:  

Örnek kodu belgenize ekleyin ve çalıştırın. Ardından, sonucu görmek için belgemizdeki bir sayfaya en azından sonuçlar sütununda listelenen alanları ekleyin.

Örnek Sonuç
Temp:

LOAD * inline [

Customer|Product|OrderNumber|UnitSales|CustomerID

Astrida|AA|1|10|1

Astrida|AA|7|18|1

Astrida|BB|4|9|1

Astrida|CC|6|2|1

Betacab|AA|5|4|2

Betacab|BB|2|5|2

Betacab|DD|12|25|2

Canutility|AA|3|8|3

Canutility|CC|13|19|3

Divadip|AA|9|16|4

Divadip|AA|10|16|4

Divadip|DD|11|10|4

] (delimiter is '|');

 

FirstSortedValue:

LOAD Customer,FirstSortedValue(Product, UnitSales) as MyProductWithSmallestOrderByCustomer Resident Temp Group By Customer;

Customer MyProductWithSmallestOrderByCustomer

Astrida CC

Betacab AA

Canutility AA

Divadip DD

Fonksiyon, en küçük UnitSales değerini (en küçük sipariş) içeren Customer değerini arayarak UnitSales değerlerini küçükten büyüğe sıralar.

Çünkü CC değeri Astrida müşterisi için en küçük siparişe (UnitSales değeri = 2) karşılık gelir. AA değeri Betacab müşterisi için en küçük siparişe (4) karşılık gelir; CC değeri Canutility müşterisi için en küçük siparişe (8) karşılık gelir ve DD değeri de Divadip. müşterisi için en küçük siparişe (10) karşılık gelir.

Önceki örnekte olduğu gibi Temp tablosunun yüklendiği varsayılırsa:

LOAD Customer,FirstSortedValue(Product, -UnitSales) as MyProductWithLargestOrderByCustomer Resident Temp Group By Customer;

Customer MyProductWithLargestOrderByCustomer

Astrida AA

Betacab DD

Canutility CC

Divadip -

sort_weight bağımsız değişkeninin önünde bir eksi işareti bulunduğundan fonksiyon önce en büyük değeri sıralar.

Çünkü AA değeri Astrida müşterisi için en büyük siparişe (UnitSales değeri: 18) karşılık gelir; DD değeri Betacab müşterisi için en büyük siparişe (12) karşılık gelir ve CC değeri de Canutility müşterisi için en büyük siparişe (13) karşılık gelir. Divadip müşterisinin en büyük sipariş (16) için iki aynı değeri vardır; dolayısıyla bu bir null sonuç üretir.

Önceki örnekte olduğu gibi Temp tablosunun yüklendiği varsayılırsa:

LOAD Customer,FirstSortedValue(distinct Product, UnitSales) as MyProductWithSmallestOrderByCustomer Resident Temp Group By Customer;

Customer MyProductWithLargestOrderByCustomer

Astrida AA

Betacab DD

Canutility CC

Divadip AA

distinct niteleyicisinin kullanılması dışında önceki örnekle aynıdır. Bu niteleyici Divadip için çoğaltma sonucun göz ardı edilerek null olmayan bir değer döndürülmesini sağlar.