FirstSortedValue - 圖表函數
FirstSortedValue() 從運算式中傳回 value 中指定的值,該值對應於排序 sort_weight 引數的結果,例如,具有最低單價之產品的名稱。可以在 rank 中指定排序順序中的第 n 個值。如果對於指定的 rank,有多個產生的值共用同一 sort_weight,則該函數會傳回 NULL。
語法:
FirstSortedValue([{SetExpression}] [DISTINCT] [TOTAL [<fld {,fld}>]] value, sort_weight [,rank])
傳回的資料類型: 雙值
引數:
引數 | 描述 |
---|---|
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 限定詞後面是做為圖表維度變數子集之一或更多欄位名稱的清單),您可建立總可能值的子集。 |
範例與結果:
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,即為擁有第二高 UnitPrice 的 Product 之 Customer(20)。 |
firstsortedvalue (Customer, UnitPrice, 3) |
NULL,因為有兩個 Customer 值 (Astrida 和 Canutility) 具有相同 rank (第三低) UnitPrice(15)。 使用 distinct 限定詞以確定不會發生非預期的 NULL 結果。 |
firstsortedvalue (Customer, -UnitPrice*UnitSales, 2) |
Canutility,即為擁有第二高銷售訂單值 UnitPrice 乘以 UnitSales 的 Customer(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 '|');