.avg()
取得所有符合條件的記錄中,指定屬性的彙總平均值。
var average = await Something.avg(numericAttrName, criteria);
引數 | 類型 | 詳細資訊 | |
---|---|---|---|
1 | numericAttrName | 將計算平均值的數值屬性名稱。 | |
2 | criteria | 用於比對資料庫中記錄的 Waterline 條件。如果未指定條件,則將計算此模型所有記錄的平均值。 avg 查詢不支援使用 skip 和 limit 進行分頁,或使用 select 進行投影。 |
類型 | 描述 |
---|---|
所有符合條件的記錄中,指定屬性的彙總平均值。 |
名稱 | 類型 | 何時? |
---|---|---|
UsageError | 如果傳入無效的內容,則拋出此錯誤。 | |
AdapterError | 如果資料庫配接器發生錯誤,則拋出此錯誤。 | |
Error | 如果發生任何其他意外情況,則拋出此錯誤。 |
請參閱 概念 > 模型與 ORM > 錯誤,以取得在 Sails 和 Waterline 中處理錯誤的範例。
取得年齡介於 35 至 45 歲之間的人所擁有的銀行帳戶平均餘額。
var averageBalance = await BankAccount.avg('balance')
.where({
ownerAge: { '>=': 35, '<=': 45 }
});
- 此方法可以與
await
、promise 鏈或 傳統 Node 回呼 一起使用。- 某些資料庫(如 MySQL)可能會針對此類查詢傳回
null
,但對於 Sails/Waterline 配接器作者而言,最佳實務是傳回0
,以確保應用程式層級程式碼的一致性和型別安全。