Window functions

Window functions are analytic functions that you can use for various calculations such as running totals, moving averages, and rankings.

For general syntax rules, see Window function syntax and usage. For syntax specific to individual functions, go to the links in the following table.

Sub-categoryNotes
General window
ANY_VALUE
AVG
CONDITIONAL_CHANGE_EVENT
CONDITIONAL_TRUE_EVENT
CORR
COUNT
COUNT_IF
COVAR_POP
COVAR_SAMP
INTERPOLATE_BFILL, INTERPOLATE_FFILL, INTERPOLATE_LINEAR
LISTAGGUses WITHIN GROUP syntax.
MAX
MEDIAN
MIN
MODE
PERCENTILE_CONTUses WITHIN GROUP syntax.
PERCENTILE_DISCUses WITHIN GROUP syntax.
RATIO_TO_REPORT
STDDEV, STDDEV_SAMPSTDDEV and STDDEV_SAMP are aliases.
STDDEV_POP
SUM
VAR_POP
VAR_SAMP
VARIANCE_POPAlias for VAR_POP.
VARIANCE , VARIANCE_SAMPAlias for VAR_SAMP.
Ranking
CUME_DIST
DENSE_RANK
FIRST_VALUE
LAG
LAST_VALUE
LEAD
NTH_VALUE
NTILE
PERCENT_RANKSupports only RANGE BETWEEN window frames without explicit offsets.
RANK
ROW_NUMBER
Bitwise aggregation
BITAND_AGG
BITOR_AGG
BITXOR_AGG
Boolean aggregation
BOOLAND_AGG
BOOLOR_AGG
BOOLXOR_AGG
Hash
HASH_AGG
Semi-structured data aggregation
ARRAY_AGG
OBJECT_AGG
Counting distinct values
ARRAY_UNION_AGG
ARRAY_UNIQUE_AGG
Linear regression
REGR_AVGX
REGR_AVGY
REGR_COUNT
REGR_INTERCEPT
REGR_R2
REGR_SLOPE
REGR_SXX
REGR_SXY
REGR_SYY
Statistics and probability
KURTOSIS
Cardinality estimation
(using HyperLogLog)
APPROX_COUNT_DISTINCTAlias for HLL.
HLL
HLL_ACCUMULATE
HLL_COMBINE
HLL_ESTIMATENot an aggregate function; uses scalar input from HLL_ACCUMULATE or HLL_COMBINE.
HLL_EXPORT
HLL_IMPORT
Similarity estimation
(using MinHash)
APPROXIMATE_JACCARD_INDEXAlias for APPROXIMATE_SIMILARITY.
APPROXIMATE_SIMILARITY
MINHASH
MINHASH_COMBINE
Frequency estimation
(using Space-Saving)
APPROX_TOP_K
APPROX_TOP_K_ACCUMULATE
APPROX_TOP_K_COMBINE
APPROX_TOP_K_ESTIMATENot an aggregate function; uses scalar input from APPROX_TOP_K_ACCUMULATE or APPROX_TOP_K_COMBINE.
Percentile estimation
(using t-Digest)
APPROX_PERCENTILE
APPROX_PERCENTILE_ACCUMULATE
APPROX_PERCENTILE_COMBINE
APPROX_PERCENTILE_ESTIMATENot an aggregate function; uses scalar input from APPROX_PERCENTILE_ACCUMULATE or APPROX_PERCENTILE_COMBINE.