.avg()获取所有匹配记录中指定属性的聚合平均值。
var average = await Something.avg(numericAttrName, criteria);
| 参数 | 类型 | 详情 | |
|---|---|---|---|
| 1 | numericAttrName | 要计算平均值的数值属性的名称。 | |
| 2 | criteria | 用于匹配数据库中记录的 Waterline 标准。如果未指定标准,则平均值将针对该模型的所有记录计算。avg 查询不支持使用skip 和limit 进行分页,也不支持使用select 进行投影。 |
| 类型 | 描述 |
|---|---|
| 所有匹配记录中指定属性的聚合平均值。 |
| 名称 | 类型 | 何时 |
|---|---|---|
| UsageError | 如果传入无效内容,则抛出此错误。 | |
| AdapterError | 如果数据库适配器中出现错误,则抛出此错误。 | |
| Error | 如果发生任何其他意外情况,则抛出此错误。 |
有关在 Sails 和 Waterline 中协商错误的示例,请参阅 Concepts > Models and ORM > Errors。
获取年龄在 35 到 45 岁之间的人拥有的银行账户的平均余额。
var averageBalance = await BankAccount.avg('balance')
.where({
ownerAge: { '>=': 35, '<=': 45 }
});
- 此方法可与
await、promise 链或 传统 Node 回调 一起使用。- 一些数据库(如 MySQL)可能对此类查询返回
null,但是,Sails/Waterline 适配器作者最好返回0,以确保应用程序级代码的类型安全性和一致性。