Only - チャート関数

Only() は、集計データに結果が 1 つしか存在しない場合に値を返します。例えば、単価 = 9 の製品を検索した場合、単価が 9 の製品が複数あると、NULLが返されます。

構文:  

Only([{SetExpression}] [TOTAL [<fld {,fld}>]] expr)

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

引数:  

引数 説明
expr メジャーの対象となるデータが含まれている数式または項目。
SetExpression デフォルトでは、集計関数は選択されたレコード セットに対して集計を行います。Set 分析数式でレコード セットを定義することも可能です。
TOTAL

関数の引数の前に TOTALの文字が配置されている場合、現在の軸の値に関連しているものだけでなく、現在の選択範囲内にあるすべての可能な値に対して計算が実行されます。つまりチャート軸は無視されます。

TOTAL修飾子の後には、山括弧<fld> で囲んだ 1 つ以上の項目名のリストを続けることができます。これらの項目名は、チャート軸の変数のサブセットにする必要があります。

参照項目: 集計範囲の定義

ヒント: Only()は、サンプル データに可能な値が複数存在する場合に NULL を返すよう設定するために使用します。

例と結果:  

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
結果

Only({<UnitPrice={9}>} Product)

BB(Product の中で「9」という UnitPrice がある唯一の項目)

Only({<Product={DD}>} Customer)

Betacab(「DD」という Product を販売している唯一の Customer)

Only({<UnitPrice={20}>} UnitSales)

UnitSalesの数。UnitSales の値は 1 つしかないため、UnitPrice が 20 の場合は 2 になる((UnitPrice) =20)

Only({<UnitPrice={15}>} UnitSales)

NULL(UnitPrice = 15 の UnitSales 値が 2 つあるため)

例で使用されているデータ:

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 '|');