FirstSortedValue - 圖表函數

FirstSortedValue() 從運算式中傳回 value 中指定的值,該值對應於排序 sort_weight 引數的結果,例如,具有最低單價之產品的名稱。可以在 rank 中指定排序順序中的第 n 個值。如果對於指定的 rank,有多個產生的值共用同一 sort_weight,則該函數會傳回 NULL

Syntax:  

FirstSortedValue([{SetExpression}] [DISTINCT] [TOTAL [<fld {,fld}>]] value, sort_weight [,rank])

Return data type: 雙值

Arguments:  

引數 描述
value 輸出欄位。 函數找到對應於 sort_weight 之排序結果的運算式 value 的值。
sort_weight

輸入欄位。 包含待排序之資料的運算式。會找到 sort_weight 的第一個 (最低) 值,從中判定 value 運算式的對應值。如果您在 sort_weight 前面放置一個負號,則該函數會改為傳回最後一個 (最高) 的已排序值。

rank

透過指明 rank "n" 大於 1,可取得第 n 個已排序的值。

SetExpression 依預設,彙總函數將彙總選項所定義的一組可能記錄。集合分析運算式可定義一組替代的記錄。
DISTINCT 如果 DISTINCT 這個字出現在函數引數之前,會忽略評估函數引數所產生的重複項目。
TOTAL

如果單字 TOTAL 位於函數引數之前,則會在提供現行選項的所有可能值上進行計算,而不僅僅是關於目前維度值的那些選項,也就是說,它會忽略圖表維度。

透過使用 TOTAL [<fld {.fld}>] (其中 TOTAL 限定詞後面是做為圖表維度變數子集之一或更多欄位名稱的清單),您可建立總可能值的子集。

定義彙總範圍

Examples and results:  

Customer Product UnitSales UnitPrice
Astrida AA 4 16
Astrida AA 10 15
Astrida BB 9 9
Betacab BB 5 10
Betacab CC 2 20
Betacab DD - 25
Canutility AA 8 15
Canutility CC - 19
範例 結果
firstsortedvalue (Product, UnitPrice)

BB,即為 UnitPrice 最低的 Product(9)。

firstsortedvalue (Product, UnitPrice, 2)

BB,即為 UnitPrice 第二低的 Product(10)。

firstsortedvalue (Customer, -UnitPrice, 2)

Betacab,即為擁有第二高 UnitPriceProductCustomer(20)。

firstsortedvalue (Customer, UnitPrice, 3)

NULL,因為有兩個 Customer 值 (AstridaCanutility) 具有相同 rank (第三低) UnitPrice(15)。

使用 distinct 限定詞以確定不會發生非預期的 NULL 結果。

firstsortedvalue (Customer, -UnitPrice*UnitSales, 2)

Canutility,即為擁有第二高銷售訂單值 UnitPrice 乘以 UnitSalesCustomer(120)。

範例中使用的資料:

ProductData:

LOAD * inline [

Customer|Product|UnitSales|UnitPrice

Astrida|AA|4|16

Astrida|AA|10|15

Astrida|BB|9|9

Betacab|BB|5|10

Betacab|CC|2|20

Betacab|DD||25

Canutility|AA|8|15

Canutility|CC||19

] (delimiter is '|');