Calculates the average value for a given property. Uses the SQL function AVG. If no records can be found to perform the calculation on you can use the ifNull argument to decide what should be returned.
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
| property | string | Yes | Name of the property to calculate the average for. | |
| where | string | No | See documentation for findAll. | |
| include | string | No | See documentation for findAll. | |
| distinct | boolean | No | false | When true, AVG will be performed only on each unique instance of a value, regardless of how many times the value occurs. |
| parameterize | any | No | true | See documentation for findAll. |
| ifNull | any | No | The value returned if no records are found. Common usage is to set this to 0 to make sure a numeric value is always returned instead of a blank string. | |
| includeSoftDeletes | boolean | No | false | See documentation for findAll. |
| group | string | No | See documentation for findAll. |
// Get the average salary for all employees
avgSalary = model("employee").average("salary");
// Get the average salary for employees in a given department
avgSalary = model("employee").average(property="salary", where="departmentId=##params.key##");
// Make sure a numeric value is always returned if no records are calculated
avgSalary = model("employee").average(property="salary", where="salary BETWEEN ##params.min## AND ##params.max##", ifNull=0);