PostgreSQL固有の集計関数—Djangoドキュメント
PostgreSQL固有の集計関数
これらの機能は、django.contrib.postgres.aggregates
モジュールから利用できます。 これらについては、 PostgreSQLドキュメントで詳しく説明されています。
ノート
すべての関数にはデフォルトのエイリアスがないため、明示的に指定する必要があります。 例えば:
汎用集計関数
ArrayAgg
- class ArrayAgg(expression, distinct=False, filter=None, ordering=(), **extra)
配列に連結された、nullを含む値のリストを返します。
- distinct
配列値を区別するかどうかを決定するオプションのブール引数。 デフォルトは
False
です。
- ordering
フィールド名のオプションの文字列(降順を示すオプションの
"-"
プレフィックス付き)または結果リスト内の要素の順序を指定する式(または文字列や式のタプルまたはリスト) 。例:
BitAnd
- class BitAnd(expression, filter=None, **extra)
- null以外のすべての入力値のビット単位の
AND
のint
を返します。すべての値がnullの場合は、None
を返します。
BitOr
- class BitOr(expression, filter=None, **extra)
- null以外のすべての入力値のビット単位の
OR
のint
を返します。すべての値がnullの場合は、None
を返します。
BoolAnd
- class BoolAnd(expression, filter=None, **extra)
すべての入力値がtrueの場合は
True
を返し、すべての値がnullの場合はNone
を返し、それ以外の場合はFalse
を返します。使用例:
BoolOr
- class BoolOr(expression, filter=None, **extra)
少なくとも1つの入力値がtrueの場合は
True
を返し、すべての値がnullの場合はNone
を返し、値がない場合はFalse
を返します。使用例:
JSONBAgg
- class JSONBAgg(expressions, distinct=False, filter=None, ordering=(), **extra)
入力値を
JSON
配列として返します。- distinct
バージョン3.2の新機能。
配列値を区別するかどうかを決定するオプションのブール引数。 デフォルトは
False
です。
- ordering
バージョン3.2の新機能。
フィールド名のオプションの文字列(降順を示すオプションの
"-"
プレフィックス付き)または結果リスト内の要素の順序を指定する式(または文字列や式のタプルまたはリスト) 。例は ArrayAgg.ordering の場合と同じです。
StringAgg
- class StringAgg(expression, delimiter, distinct=False, filter=None, ordering=())
delimiter
文字列で区切られた文字列に連結された入力値を返します。- delimiter
必須の引数。 文字列である必要があります。
- distinct
連結された値が区別されるかどうかを決定するオプションのブール引数。 デフォルトは
False
です。
- ordering
フィールド名のオプションの文字列(降順を示すオプションの
"-"
プレフィックス付き)または結果文字列内の要素の順序を指定する式(または文字列や式のタプルまたはリスト) 。例は ArrayAgg.ordering の場合と同じです。
統計の集計関数
yおよびx
これらすべての関数の引数y
およびx
は、フィールドの名前または数値データを返す式にすることができます。 両方が必要です。
Corr
- class Corr(y, x, filter=None)
- 相関係数を
float
として返します。一致する行がない場合は、None
として返します。
CovarPop
- class CovarPop(y, x, sample=False, filter=None)
母共分散を
float
として返します。一致する行がない場合は、None
として返します。オプションの引数が1つあります。
- sample
デフォルトでは、
CovarPop
は一般的な母共分散を返します。 ただし、sample=True
の場合、戻り値はサンプルの母共分散になります。
RegrAvgX
- class RegrAvgX(y, x, filter=None)
- 独立変数(
sum(x)/N
)の平均をfloat
として返します。一致する行がない場合は、None
を返します。
RegrAvgY
- class RegrAvgY(y, x, filter=None)
- 従属変数(
sum(y)/N
)の平均をfloat
として、または一致する行がない場合はNone
として返します。
RegrCount
- class RegrCount(y, x, filter=None)
- 両方の式がnullでない入力行数の
int
を返します。
RegrIntercept
- class RegrIntercept(y, x, filter=None)
(x, y)
ペアによって決定された最小二乗近似線形方程式のy切片をfloat
として、または一致する行がない場合はNone
として返します。
RegrR2
- class RegrR2(y, x, filter=None)
- 相関係数の2乗を
float
として返します。一致する行がない場合は、None
を返します。
RegrSlope
- class RegrSlope(y, x, filter=None)
(x, y)
ペアによって決定された最小二乗近似線形方程式の傾きをfloat
として、または一致する行がない場合はNone
として返します。
RegrSXX
- class RegrSXX(y, x, filter=None)
sum(x^2) - sum(x)^2/N
(独立変数の「二乗和」)をfloat
として返します。一致する行がない場合は、None
を返します。
RegrSXY
- class RegrSXY(y, x, filter=None)
sum(x*y) - sum(x) * sum(y)/N
(独立した時間従属変数の「積の合計」)をfloat
として返します。一致する行がない場合は、None
を返します。
RegrSYY
- class RegrSYY(y, x, filter=None)
sum(y^2) - sum(y)^2/N
(従属変数の「二乗和」)をfloat
として返します。一致する行がない場合は、None
を返します。
使用例
このサンプルテーブルを使用します。
いくつかの汎用集計関数の例を次に示します。
次の例は、統計集計関数の使用法を示しています。 基礎となる数学については説明しません(これについては、たとえば wikipedia で読むことができます)。