Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

VARIANCE、VAR_SAMP、VAR_POP

データ・セットの統計的分散を返す集約関数。

Synopsis

VARIANCE([ALL | DISTINCT [BY(col-list)]] expression [%FOREACH(col-list)] [%AFTERHAVING])

VAR_SAMP([ALL | DISTINCT [BY(col-list)]] expression [%FOREACH(col-list)] [%AFTERHAVING])

VAR_POP([ALL | DISTINCT [BY(col-list)]] expression [%FOREACH(col-list)] [%AFTERHAVING])

引数

ALL オプション — 統計的分散関数が expression のすべての値の分散を返すように指定します。キーワードが指定されていない場合は、これが既定になります。
DISTINCT オプション — 統計的分散関数が個別 (一意) の expression 値の分散を返すように指定する DISTINCT 節。DISTINCT で BY(col-list) 従属節を指定できます。col-list には 1 つのフィールド、またはコンマ区切りのフィールドのリストを指定できます。
expression 任意の有効な式。通常は、分散の分析対象となるデータ値を含む列の名前を指定します。
%FOREACH(col-list) オプション — 列名、またはコンマで区切られた列名のリスト。%FOREACH の詳細は、"SELECT" を参照してください。
%AFTERHAVING オプションHAVING 節にある条件を適用します。

説明

これら 3 つの分散集約関数は、NULL 値を破棄した後、expression の値の統計的分散を返します。つまり、データ・セットの平均値からの分散量が正数で表されます。返される値が大きければ、値のデータ・セット内の分散が大きいということになります。Caché SQL は、それらの各分散関数に対応する、標準偏差を返す集約関数も提供しています。

この統計的な分散の派生方法には、以下のようないくらかの差異があります。

  • VARIANCE : データ・セット内のすべての値が同じ値を持つ (変動なしの) 場合は、0 を返します。データ・セットが 1 つのみの値で構成される (変動の可能性なしの) 場合は、0 を返します。データ・セットに値がない場合は、NULL を返します。

    VARIANCE の計算は以下のようになります。

    (SUM(expression**2) * COUNT(expression)) - SUM(expression**2)
    _____________________________________________________________
    COUNT(expression) * (COUNT(expression) - 1)
    
  • VAR_SAMP : サンプル分散。データ・セット内のすべての値が同じ値を持つ (変動なしの) 場合は、0 を返します。データ・セットが 1 つのみの値で構成される (変動の可能性なしの) 場合は、NULL を返します。データ・セットに値がない場合は、NULL を返します。VARIANCE と同じ分散計算を使用します。

  • VAR_POP : 母分散。 データ・セット内のすべての値が同じ値を持つ (変動なしの) 場合は、0 を返します。データ・セットが 1 つのみの値で構成される (変動の可能性なしの) 場合は、0 を返します。データ・セットに値がない場合は、NULL を返します。

    VAR_POP の計算は以下のようになります。

    (SUM(expression**2) * COUNT(expression)) - (SUM(expression) **2)
    _____________________________________________________________
    (COUNT(expression) **2 )
    

これらの分散集約関数は、テーブルまたはビューを参照する SELECT クエリまたはサブクエリで使用できます。これらの関数は、一般のフィールド値と共に SELECT リストや HAVING 節で表示できます。

これらの分散集約関数は、WHERE 節では使用できません。SELECT がサブクエリの場合を除いて、JOINON 節ではそれらを使用できません。

これらの分散集約関数は、expression がデータ型 DOUBLE でない限り (この場合、この関数はデータ型 DOUBLE を返します)、精度が 36 で小数桁が 17 のデータ型 NUMERIC の値を返します。

通常、これらの分散集約関数は、数値を含むフィールドまたは式に適用されます。これらの関数では、空文字列 (") などの数値でない値はゼロ (0) として扱われます。

これらの分散集約関数は、データ・フィールド内の NULL 値を無視します。クエリから行が返されない場合や、すべての行のデータ・フィールド値が NULL の場合、これらの関数は NULL を返します。

統計的分散関数は、すべての集約関数と同様に、オプションの DISTINCT 節を取ることができます。VARIANCE(DISTINCT col1) は、これらの個別 (一意) の col1 フィールド値の分散を返します。VARIANCE(DISTINCT BY(col2) col1) は、col2 値が個別 (一意) であるレコードの col1 フィールド値の分散を返します。ただし、個別の col2 値には、個別値として NULL が 1 つ含まれる場合があります。

現在のトランザクション中の変更

すべての集約関数と同様に、分散関数も必ず、現在のトランザクションの分離レベルに関係なく、コミットされていない変更も含めてデータの現在の状態を返します。詳細は、"SET TRANSACTION" および "START TRANSACTION" を参照してください。

以下の例では、VARIANCE を使用して、Sample.Employee 内の従業員の年齢における分散と、1 人以上の従業員で表される個別の年齢における分散を返します。

SELECT VARIANCE(Age) AS AgeVar,VARIANCE(DISTINCT Age) AS PerAgeVar
     FROM Sample.Employee

以下の例では、VAR_POP を使用して、Sample.Employee 内の従業員の年齢における母分散と、1 人以上の従業員で表される個別の年齢における分散を返します。

SELECT VAR_POP(Age) AS AgePopVar,VAR_POP(DISTINCT Age) AS PerAgePopVar
     FROM Sample.Employee

関連項目

FeedbackOpens in a new tab