Link Search Menu Expand Document

This documentation is related to an older version of Firebolt. For the most current documentation, see Firebolt documentation.

AVG

Returns the average value within the requested window.

For additional window functions, see Window Functions.

Syntax

AVG( <val> ) OVER ( [ PARTITION BY <exp> ] )
Parameter Description
<val> An expression used for the AVG() function.
<expr> An expression used for the partition by clause.

Example

The example below is querying test scores for students in various grade levels. Unlike a regular AVG() aggregation, the window function allows us to see how each student individually compares to the average test score for their grade level.

SELECT
	first_name,
	grade_level,
	test_score,
	AVG(test_score) OVER (PARTITION BY grade_level) AS average_for_grade
FROM
	class_test;

Returns:

| first_name | grade_level | test_score | average_for_grade | | :———-| :———–| :————|:————————-| | Frank | 9 | 76 | 81.33333333333333 | | Humphrey | 9 | 90 | 81.33333333333333 | | Iris | 9 | 79 | 81.33333333333333 | | Sammy | 9 | 85 | 81.33333333333333 | | Peter | 9 | 80 | 81.33333333333333 | | Jojo | 9 | 78 | 81.33333333333333 | | Brunhilda | 12 | 92 | 89 | | Franco | 12 | 94 | 89 | | Thomas | 12 | 66 | 89 | | Gary | 12 | 100 | 89 | | Charles | 12 | 93 | 89 | | Jesse | 12 | 89 | 89 | | Roseanna | 11 | 94 | 73 | | Carol | 11 | 52 | 73 | | Wanda | 11 | 73 | 73 | | Shangxiu | 11 | 76 | 73 | | Larry | 11 | 68 | 73 | | Otis | 11 | 75 | 73 | | Deborah | 10 | 78 | 68.2 | | Yolinda | 10 | 30 | 68.2 | | Albert | 10 | 59 | 68.2 | | Mary | 10 | 85 | 68.2 | | Shawn | 10 | 89 | 68.2 | +————+————-+————+————————-+