Skip to main content
Evaluates a prometheus query using data from a TimeSeries table over a range of evaluation times.

Syntax

Arguments

  • db_name - The name of the database where a TimeSeries table is located.
  • time_series_table - The name of a TimeSeries table.
  • promql_query - A query written in PromQL syntax.
  • start_time - The start time of the evaluation range, with millisecond or finer precision.
  • end_time - The end time of the evaluation range, with millisecond or finer precision.
  • step - The step used to iterate the evaluation time from start_time to end_time (inclusively).

Returned value

The function returns different columns depending on the result type of the query passed to parameter promql_query: The values are always Float64 regardless of the type of the values in the TimeSeries table. The scale S of the timestamps is the scale of the timestamps in the table, but not less than 3 (milliseconds). The time zone TZ is the time zone of start_time and end_time if they have type DateTime or DateTime64 with the same time zone, otherwise it is the time zone of the timestamps in the table. The samples column is named time_series if the TimeSeries table has version 2 or earlier.

Supported PromQL Features

Selectors

Instant selectors, range selectors, label matchers (=, !=, =~, !~), offset modifiers, @ timestamp modifiers, and subqueries.

Functions

Note: histogram_quantile uses linear interpolation on classic histogram buckets (identified by the le label). Native histograms are not supported. The phi (quantile level) argument must be a constant scalar. Expressions that vary per step, such as histogram_quantile(time() / 1000, ...), are rejected with a NOT_IMPLEMENTED exception. Note: ts_of_min_over_time, ts_of_max_over_time, ts_of_last_over_time, first_over_time, ts_of_first_over_time and mad_over_time are experimental functions in Prometheus (enabled there with --enable-feature=promql-experimental-functions); ClickHouse evaluates them without requiring that flag.

Operators

Arithmetic (+, -, *, /, %, ^, atan2) and comparison (==, !=, <, >, <=, >= with optional bool) binary operators, with on()/ignoring() and group_left()/group_right() modifiers. Logical set operators and, or, and unless, with on()/ignoring() modifiers. Unary operators + and -.

Aggregation Operators

sum, avg, min, max, count, count_values, stddev, stdvar, group, quantile, topk, bottomk, limitk — with optional by() or without() modifiers.

Example

Last modified on September 16, 2026