Aggregate
クラス定義
django.db.modelsに定義されたクラス。
引数
Description
*expressions
参照するフィールド名を表す文字列、もしくはquery
output_field
戻り値で使うフィールド名
filter
フィルターに使うQ型のオブジェクト
**extra
SQL用の追加Contextを提供するためのKeyword引数
aggregateとは集計する、集約するという意味。 文字通り、指定されたテーブルに対して集計作業を行う。
モデル名.objects.all().aggregate
、
もしくはall()
を省略したモデル名.objects.aggregate
が基本形。
基本的な使い方
項目を指定しただけのシンプルな形。
辞書型のオブジェクトが戻り値になっている。特に指定しなかった場合、オブジェクトのkeyは下記の通り’指定したフィールド__メソッド名’となる。
output_field
に、key値を指定することもできる。
複数の集計作業
メソッドを複数指定することで、同時に集計を行うことができる。
集計値を使った計算
下記は最大値を返すMaxメソッドと、平均値を返すAvgメソッドの差分の結果をprice_diff
として求めている。
Aggregateで利用可能な基本的な集計メソッド一覧
Method
Default alias
Description
Avg
<field>__avg
指定された項目の平均値
Count
<field>__count
指定された項目の数
Max
<field>__max
指定された項目の最大値
Min
<field>__min
指定された項目の最小値
StdDev
<field>__stddev
指定された項目の標準偏差
Sum
<field>__sum
指定された項目の合計値
Variance
<field>__variance
指定された項目の分散
最終更新
役に立ちましたか?