.sum()
取得所有符合條件的記錄中,指定屬性的總和。
var total = await Something.sum(numericAttrName, criteria);
參數 | 類型 | 詳細資訊 | |
---|---|---|---|
1 | numericAttrName | 要計算總和的數值屬性名稱。 | |
2 | criteria | 用於比對資料庫中記錄的 Waterline 條件。 如果未指定條件,則將計算此模型所有記錄的總和。 sum 查詢不支援使用 skip 和 limit 進行分頁,或使用 select 進行投影。 |
類型 | 描述 |
---|---|
所有符合條件的記錄中,指定屬性的總和。 |
名稱 | 類型 | 何時? |
---|---|---|
UsageError | 如果傳入無效的內容,則會拋出此錯誤。 | |
AdapterError | 如果資料庫介面卡發生錯誤,則會拋出此錯誤。 | |
Error | 如果發生任何其他非預期的情況,則會拋出此錯誤。 |
請參閱 概念 > 模型與 ORM > 錯誤,以取得在 Sails 和 Waterline 中處理錯誤的範例。
取得所有銀行帳戶的累積帳戶餘額,這些帳戶的餘額少於 $32,000 美元或被標記為「已暫停」。
var total = await BankAccount.sum('balance')
.where({
or: [
{ balance: { '<': 32000 } },
{ suspended: true }
]
});
- 此方法可以與
await
、promise chaining 或 傳統 Node callbacks 一起使用。- 某些資料庫(例如 MySQL)可能會為這類查詢傳回
null
;但是,為了應用程式層級程式碼的一致性和型別安全,Sails/Waterline 介面卡作者最好傳回0
。