Upstash Documentation

Aggregations

2 min read

Aggregations let you compute analytics over your indexed data — metrics like averages, sums, and statistics, as well as bucket-based groupings like terms, ranges, and histograms.

Use the SEARCH.AGGREGATE command to run aggregations.

They are useful when you want to answer questions like:

  • "What is the average price?"
  • "How many unique users do we have?"
  • "How many orders fall into each price range?"
  • "How does traffic change per hour/day?"

Aggregation requests have two phases:

  1. Document selection: Optional filter selects which documents participate.
  2. Aggregation computation: the selected set is reduced into metric values and/or buckets.

Each aggregation is defined with an alias (the key you choose for the result) and an operator that specifies what to compute.

Response Format#

Filtering#

Use filter to restrict which documents participate in the aggregation.

Filtering uses the same query syntax as queries.

Multiple Aggregations in One Request#

You can compute multiple top-level aggregations in one call by defining multiple aliases under aggregations.

Each alias is computed against the same filtered document set.

Nested Aggregations#

Bucket operators can include sub-aggregations via $aggs, so you can compute per-bucket metrics.

  • $terms, $range, $histogram, and $dateHistogram support nested $aggs.
  • $facet does not support nested $aggs.
  • Metric operators do not support nested $aggs.

Operator Families#

Metric Aggregations#

Metric aggregations return numeric summaries.

OperatorTypical use
$avgMean value
$sumTotal
$minSmallest value
$maxLargest value
$countNumber of values
$cardinalityNumber of distinct values
$statsBasic summary stats
$extendedStatsStats + variance/std deviation
$percentilesDistribution cut points

See the metric overview.

Bucket Aggregations#

Bucket aggregations partition documents into groups.

OperatorTypical use
$termsTop values by field
$rangeCustom ranges
$histogramFixed numeric bins
$dateHistogramFixed time bins
$facetHierarchical facets

See the bucket overview.