Computes the population variance of all non-NULL numeric values produced by an expression. The population variance measures the average of the squared differences from the population mean, indicating how spread out the values are within the entire population. For information about the sample variance, which measures how spread out the values are within a sample, see VAR_SAMP.
Syntax
VAR_POP(<expression>) [FILTER ([WHERE] <condition>)]
Parameters
| Parameter | Description | Supported input types |
|---|
<expression> | An expression producing numeric values for which to calculate the population variance. | REAL, DOUBLE PRECISION |
<condition> | An optional boolean expression to filter rows used in aggregation | BOOL |
Return Type
VAR_POP returns a result of type DOUBLE PRECISION.
Special cases
- If there are no non-
NULL input values, the result is NULL.
- If the input contains an
Inf or NaN value, the result will be NaN.
Example
The following example calculates the population variance of five grade values:
SELECT ROUND(VAR_POP(grade::double precision), 3) AS variance
FROM UNNEST(ARRAY[4.0, 3.7, 3.3, 2.7, 2.7]) AS t(grade);
| variance double null |
|---|
| 0.274 |
Rows: 1Execution time: 8.37ms