Skip to main content
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

ParameterDescriptionSupported 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 aggregationBOOL

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