FirstSortedValue - チャート関数
FirstSortedValue() は、value で指定した数式から値を返します。これは、単価が最も低い製品の名前など、sort_weight 引数のソート結果に対応します。rank では、ソート順の n 番目の値を指定できます。指定された sort_weight で複数の値が同じ rank を共有している場合、この関数は NULL を返します。
構文:
FirstSortedValue([{SetExpression}] [DISTINCT] [TOTAL [<fld {,fld}>]] value, sort_weight [,rank])
戻り値データ型: dual
引数:
引数 | 説明 |
---|---|
value | 出力フィールド。 この関数は数式 value の値を特定します。これは sort_weight のソート結果に対応します。 |
sort_weight |
入力フィールド。 ソート対象となるデータが含まれている数式です。sort_weight の最初の値 (最小値) が返され、そこから value 数式の対応する値が特定されます。sort_weight の前にマイナス記号を付けると、最後にソートされた値 (最大値) が返されます。 |
rank |
rank "n" に 1 よりも大きな値を入力するとで、n 番目のソート値を取得できます。 |
SetExpression | デフォルトでは、集計関数は選択されたレコード セットに対して集計を行います。Set 分析数式でレコード セットを定義することも可能です。 |
DISTINCT | 関数の引数の前に DISTINCT という用語が付いている場合、関数の引数の評価から生じる重複は無視されます。 |
TOTAL |
関数の引数の前に TOTAL の文字が配置されている場合、現在の軸の値に関連しているものだけでなく、現在の選択範囲内にあるすべての可能な値に対して計算が実行されます。つまりチャート軸は無視されます。 TOTAL [<fld {.fld}>] (ここで、TOTAL 修飾子の後には、1 つまたは複数の項目名のリストがチャート軸変数のサブセットとして続く) を使用して、合計絞込値のサブセットを作成できます。 |
例と結果:
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 (9) の Product)。 |
firstsortedvalue (Product, UnitPrice, 2) |
BB (UnitPrice (10) が 2 番目に低い Product)。 |
firstsortedvalue (Customer, -UnitPrice, 2) |
Betacab (UnitPrice (20) が 2 番目に高い Product に関連付けられている Customer)。 |
firstsortedvalue (Customer, UnitPrice, 3) |
NULL (UnitPrice (15) の rank が同じ (最下位から 3 番目)Customer の値が 2 つ (Astrida と Canutility) あるため)。 予期しない NULL が返ってこないよう、distinct 修飾子を使います。 |
firstsortedvalue (Customer, -UnitPrice*UnitSales, 2) |
Canutility (UnitPrice と UnitSales (120) を掛けた販売注文値が 2 番目に高い Customer)。 |
例で使用されているデータ:
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 '|');