.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
,以确保应用程序级代码的类型安全性和一致性。