Skip to content

topn()

Get the top N most common values from a space-saving aggregate

Since 1.16.0

Get the top N most common values from a space-saving aggregate. The space-saving aggregate can be created from either freq_agg or mcv_agg.

Get the 20 most frequent zip_codes from an employees table:

SELECT topn(mcv_agg(20, zip_code)) FROM employees;

The syntax is:

topn (
agg SpaceSavingAggregate,
n INTEGER
) RETURNS SETOF AnyElement
NameTypeDefaultRequiredDescription
aggSpaceSavingAggregate-A space-saving aggregate created using either freq_agg or mcv_agg
nINTEGER-The number of values to return. Required only for frequency aggregates. For top N aggregates, defaults to target N of the aggregate itself, and requests for a higher N return an error. In some cases, the function might return fewer than N values. This might happen if a frequency aggregate doesn’t contain N values above the minimum frequency, or if the data isn’t skewed enough to support N values from a top N aggregate.
ColumnTypeDescription
topnSETOF AnyElementThe N most-frequent values in the aggregate