.sum()指定された属性について、一致するすべてのレコードの集計合計を取得します。
var total = await Something.sum(numericAttrName, criteria);
| 引数 | 型 | 詳細 | |
|---|---|---|---|
| 1 | numericAttrName | 合計する数値属性の名前。 | |
| 2 | criteria | データベース内でレコードを照合するために使用するWaterlineの条件。条件が指定されていない場合、合計はこのモデルのすべてのレコードに対して計算されます。sumクエリは、skipとlimitを使用したページネーションや、selectを使用したプロジェクションをサポートしていません。 |
| 型 | 説明 |
|---|---|
| 指定された属性について、一致するすべてのレコードの集計合計。 |
| 名前 | 型 | いつ? |
|---|---|---|
| UsageError | 無効なものが渡された場合にスローされます。 | |
| AdapterError | データベースアダプターで何らかの問題が発生した場合にスローされます。 | |
| Error | その他の予期しない事態が発生した場合にスローされます。 |
SailsおよびWaterlineでのエラー処理の例については、コンセプト > モデルとORM > エラーを参照してください。
$32,000未満または「一時停止」とフラグが立てられているすべての銀行口座の累積口座残高を取得します。
var total = await BankAccount.sum('balance')
.where({
or: [
{ balance: { '<': 32000 } },
{ suspended: true }
]
});
- このメソッドは、
await、プロミスチェーン、または従来のNodeコールバックで使用できます。- MySQLなどの一部のデータベースでは、この種のクエリに対して
nullが返される場合があります。ただし、Sails/Waterlineアダプターの作成者は、アプリレベルのコードでの一貫性と型安全のために0を返すのがベストプラクティスです。