メイン コンテンツをスキップする 補完的コンテンツへスキップ

Aggr

Aggr() は、指定された軸上で計算された数式の値の配列を返します。たとえば、顧客別、地域別 sales の最大値です。

Aggr 関数は、ネストされた集計に使用されます。この場合、最初のパラメーター (内部集計) は、軸の値ごとに 1 回計算されます。軸は、第 2 パラメータ (および後続のパラメータ) で指定します。

さらに、Aggr 関数の結果の配列を、ネストされる集計への入力として使用し、外部の集計関数で Aggr 関数を囲みます。

構文:  

Aggr({SetExpression}[DISTINCT] [NODISTINCT ] expr, StructuredParameter{, StructuredParameter})

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

引数:  

  • expr: 集計関数で構成される数式。デフォルトでは、集計関数は選択されたレコード セットに対して集計を行います。
  • StructuredParameter:StructuredParameter は、軸と、オプションのソート基準から構成され、次の形式を持ちます:(Dimension(Sort-type, Ordering)) 軸は単一項目で、数式ではありません。軸は、Aggr 式の計算対象となる値の配列を決定するために使用されます。

    ソート基準が含まれる場合、Aggr 関数によって作成された値の配列がその軸に対して計算され、ソートされます。これは、Aggr 関数を囲む数式の結果にソート順が影響を及ぼす場合に重要です。ソート基準の使用方法の詳細は、「構造化されたパラメータにおける軸へのソート基準の追加」を参照してください。

  • SetExpression: デフォルトでは、集計関数は選択されたレコード セットに対して集計を行います。Set 分析数式でレコード セットを定義することも可能です。
  • DISTINCT: expression 引数の前に distinct 修飾子が配置されている場合、あるいは修飾子がまったく使用されていない場合は、軸の値の組み合わせごとに 1 つの戻り値のみが生成されます。これは正常な集計方法で、これらの異なる組み合わせがそれぞれチャートの 1 行に反映されます。
  • NODISTINCT: expression 引数の前に nodistinct 修飾子が配置されている場合、軸の値の組み合わせは、いずれも基底のデータ構造に基づいて、複数の戻り値を生成する可能性があります。軸が 1 本だけの場合、ソース データに行が存在するので、aggr 関数は要素と同じ数の配列を返します。
 

SumMinAvg などの基本的な集計関数では単一の数値が返されますが、Aggr() 関数は一時的に複数の段階的結果 (仮想テーブル) を作成して他の集計結果と比較できます。たとえば、Aggr() ステートメントで、顧客による売上の集計から平均の売上を計算し、合計された結果の平均を計算します。Avg(TOTAL Aggr(Sum(Sales), Customer))

ヒント メモ複数のレベルでネストされたチャート集計を作成する場合、計算軸で Aggr() 関数を使用してください。

制限事項:  

Aggr() 関数の各軸は単一の項目でなければならず、数式 (計算軸) にすることはできません。

構造化されたパラメータにおける軸へのソート基準の追加

基本的な形式では、Aggr 関数の構文における引数 StructuredParameter は 1 軸です。数式: Aggr(Sum(Sales, Month)) を使用すると、各月の売上の合計値が求まります。ただし、別の集計関数に囲まれている場合、ソート基準を使用しないと予期に反する結果になることがあります。これは、軸によっては数値としてもアルファベット順でもソートできるためです。

Aggr 関数の StructuredParameter 引数では、数式において軸のソート基準を指定できます。こうすると、Aggr 関数によって作成された仮想テーブルに対してソート順を強制適用できます。

引数 StructuredParameter の構文は次のとおりです。

(FieldName, (Sort-type, Ordering))

構造化されたパラメータは、次のようにネストできます。

(FieldName, (FieldName2, (Sort-type, Ordering)))

可能なソート タイプは、NUMERICTEXTFREQUENCY、または LOAD_ORDER です。

各ソート タイプに関連付けられた順序タイプは次のとおりです。

ソート順序タイプ
ソート タイプ使用可能な順序タイプ
NUMERICASCENDINGDESCENDING、または REVERSE
TEXTASCENDINGA2ZDESCENDINGREVERSE、または Z2A
FREQUENCYDESCENDINGREVERSE、または ASCENDING
LOAD_ORDERASCENDINGORIGINALDESCENDING、または REVERSE

順序タイプの REVERSEDESCENDING は同じです。

ソート タイプ TEXT では、順序タイプ ASCENDINGA2Z が同じ、 DESCENDINGREVERSEZ2A が同じです。

ソート タイプ LOAD_ORDER では、順序タイプ ASCENDINGORIGINAL が同じです。

例1:  

Avg(Aggr(Sum(UnitSales*UnitPrice), Customer))

数式 Aggr(Sum(UnitSales*UnitPrice), Customer) は、Customer による売上の合計値を求め、3 つの Customer 値の配列: 295、715、120 を返します。

事実上、値を含む明示的なテーブルや列を作成する必要なく、値の一時リストを作成できました。これらの値は Avg() 関数への入力として使用され、売上の平均値「376.6667」を算出します(プロパティ パネルで、Presentation の下の [合計] を選択しておく必要があります)。

例2:  

Aggr(NODISTINCT Max(UnitPrice), Customer)

値の配列: 16、16、16、25、25、25、19 および 19。nodistinct 修飾子は、配列がソースデータ 1 行に 1 つの要素が含まれることを意味します: それぞれが、各 Customer および Product に対する最大 UnitPrice です。

例3:  

max(aggr(sum(Customers)-above(Sum(Customers)), (MonthYear,(NUMERIC, ASCENDING))))

数式 の StructuredParameter 引数におけるソート基準の使用。 max(aggr(sum(Customers)-above(Sum(Customers)), (MonthYear,(NUMERIC, ASCENDING))))

ソート基準がない場合、数式 max(aggr(sum(Customers)-above(Sum(Customers)), (MonthYear))) の結果は、軸 MonthYear のソート方式によって異なります。必要な結果を得られないことがあります。ソート タイプおよび順序タイプに値を追加すると、構造化パラメータ (MonthYear, (NUMERIC, ASCENDING)) にソート基準が与えられます。ここで、MonthYear は、ソート タイプ NUMERIC および順序 ASCENDING により、数値の昇順でソートするように指定されています。

ここでは、顧客数が最も増えた月を求めようとしています。これは、たとえば KPI のビジュアライゼーションで使用できます。

数式の Aggr の部分は、ある月の顧客総数 (MonthYear で与えられる) を、前月の総数と比較します。軸(MonthYear,(NUMERIC, ASCENDING)) のソート基準を使用するので、月をアルファベットの昇順でなく、数値の昇順でソートすることにより、Aggr が、仮想テーブルで連続する月の顧客数を比較することが保証されます。

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

CustomerProductUnitPriceUnitSales を軸としたテーブルを作成します。数式をメジャーとしてテーブルに追加します。

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|25

Canutility|AA|8|15

Canutility|CC||19

] (delimiter is '|');

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

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

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

Remove banner from view

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