メインコンテンツまでスキップ

aggregate()

平均や最大値等の統計を行いたい場合に利用します。

使用できるキー

キー名内容省略備考
where取得条件の指定書かない場合は全ての行を取得します
orderByソート設定指定する列が 1 つの場合、配列の省略が可能です
take取得数の設定
skipスキップ数の設定
cursorカーソルベースページネーション詳細は findMany の cursor を参照
_avg平均表示の設定
_countヒット数表示の設定_alltrue 省略形も指定可能です。詳細は _count を参照
_max最大値表示の設定
_min最小値表示の設定
_sum合計表示の設定
ヒント

where ではリレーションフィルタsome / every / none / is / isNot)も利用可能です。

説明例用のシート

説明用シート

説明

上記例から以下の処理を行いたいとします。

  • age => 平均を求める
  • age => 最大値を求める
  • age => 最低値を求める

この場合以下のコードとなります。

// gassma.{{TARGET_SHEET_NAME}}.aggregate
const result = gassma.sheet1.aggregate({
_avg: {
age: true,
},
_max: {
age: true,
},
_min: {
age: true,
},
});

戻り値は以下の形式です。

{
_avg: { age: 33.333333333333336 },
_max: { age: 55 },
_min: { age: 20 }
}
注記

_avg / _sum / _max / _min では、null に加えて NaN / 不正な Date(Invalid Date)も欠損値として集計から除外されます。集計対象の値がすべて欠損値の場合、結果は null になります。

_count

ヒット数を求めたい場合に利用します。

列を指定したカウント

_count に列名を指定すると、その列の値が null(空のセル)や NaN / 不正な Date(Invalid Date)などの欠損値ではない行のみを数えます。

// gassma.{{TARGET_SHEET_NAME}}.aggregate
const result = gassma.sheet1.aggregate({
_count: {
age: true,
},
});

戻り値は以下の形式です。

{
_count: { age: 9 }
}

_all を使った全行数のカウント

_all: true を指定すると、null を含む全ての行数を数えます。

// gassma.{{TARGET_SHEET_NAME}}.aggregate
const result = gassma.sheet1.aggregate({
_count: {
_all: true,
postNumber: true,
},
});

戻り値は以下の形式です。

{
_count: { _all: 9, postNumber: 9 }
}

列を指定したカウントは null の行を数えないため、例えば postNumber が空の行が 2 行あるシートでは { _all: 9, postNumber: 7 } のように結果が異なります。

true 省略形

_count: true を指定すると、全行数が数値としてそのまま返されます。

// gassma.{{TARGET_SHEET_NAME}}.aggregate
const result = gassma.sheet1.aggregate({
_count: true,
});

戻り値は以下の形式です。

{
_count: 9
}
注記

_alltrue 省略形は _count 専用で、_avg / _max / _min / _sum では利用できません。_count は行数を数えるため null を含む全行に意味がありますが、他の集計は特定の列の値を対象とするためです。