メイン コンテンツをスキップする

FirstSortedValue - スクリプト関数

FirstSortedValue() では、value で指定された項目の中で sort_weight 引数のソート結果に対応する値が返されます。rank を指定している場合は、それも考慮されます。指定された sort_weight で複数の値が同じ rank を共有している場合、この関数は NULL を返します。

保存された値は、group by 条件で定義されたレコードの数だけ反復処理されます。group by 条件が定義されていない場合は、すべてのデータ セットから集計されます。

構文:  

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

戻り値データ型: デュアル

引数:  

FirstSortedValue 引数
引数 説明
value Expression この関数は、数式 value の値を特定します。これは sort_weight のソート結果に対応します。
sort-weight Expression ソート対象となるデータが含まれている数式です。sort_weight の最初の値 (最小値) が返され、そこから value 数式の対応する値が特定されます。sort_weight の前にマイナス記号を付けると、最後にソートされた値 (最大値) が返されます。
rank Expression

rank "n" に 1 よりも大きな値を入力するとで、n 番目のソート値を取得できます。

distinct

関数の引数の前に DISTINCT という用語が付いている場合、関数の引数の評価から生じる重複は無視されます。

例と結果:  

ドキュメントに例のスクリプトを追加して実行します。その後、結果列に含まれている項目をドキュメントのシートに追加して結果を表示します。

例1:  

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;

 

例 1 の結果
結果項目 (Customer) 結果の値 (MyProductWithSmallestOrderByCustomer)
Astrida CC
Betacab AA
Canutility AA
Divadip DD

この関数は UnitSales を最小値から最大値の順にソートし、Customer の値のうち UnitSales の最小値を持つものを、最小値から順に検索します。

これは、CC が customer Astrida の最小の注文 (値は UnitSales: 2) に対応するためです。AA は customer Betacab の最小注文 (4)、AA は customer Canutility の最小注文 (8)、DD は customer Divadip の最小注文 (10) に対応します。

例2:  

Temp テーブルが前の例のようにロードされた場合:

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

 

例 2 の結果
結果項目 (Customer) 結果の値 (MyProductWithLargestOrderByCustomer)
Astrida AA
Betacab DD
Canutility CC
Divadip -

sort_weight 引数の前にマイナス記号を付けると、最大値から順にソートされます。

AA は customer Astrida の最大の注文 (値は UnitSales:18)、DD は customer Betacab の最大の注文 (12)、CC は customer Canutility の最大の注文 (13) に対応します。customer Divadip の最大の注文は 2 つの同じ値 (16) を持つため、結果は NULL となります。

例3:  

Temp テーブルが前の例のようにロードされた場合:

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

 

例 3 の結果
結果項目 (Customer) 結果の値 (MyProductWithLargestOrderByCustomer)
Astrida AA
Betacab DD
Canutility CC
Divadip AA

distinct 修飾子が使用されている点を除くと、前の例と同じ結果になります。この場合は Divadip の結果が重複して無視され、NULL 以外の値を返すことができるようになります。

このページは役に立ちましたか?

このページまたはコンテンツに、タイポ、ステップの省略、技術的エラーなどの問題が見つかった場合は、お知らせください。改善に役立たせていただきます。

分析の近代化プログラムに参加する

Remove banner from view

分析最新化プログラムにより、重要な QlikView app を危険にさらすことなく最新化しましょう。 ここをクリック して詳細を表示するか、次にお問い合わせください。 ampquestions@qlik.com