Timescale hyperfunctions are a specialized set of functions that allow you to analyze time-series data. You can use hyperfunctions to analyze anything you have stored as time-series data, including IoT devices, IT systems, marketing analytics, user behavior, financial metrics, and cryptocurrency.
Some hyperfunctions are included by default in Timescale. For additional hyperfunctions, you need to install the Timescale Toolkit PostgreSQL extension.
For more information, see the hyperfunctions documentation.
Approximate count distinct functions
Hyperfunction type | Hyperfunction name | Toolkit | Experimental | |
---|---|---|---|---|
hyperloglog() functions | ||||
Aggregate | hyperloglog() | ✅ | ||
Alternate aggregate | approx_count_distinct() | ✅ | ||
Accessor | distinct_count() | ✅ | ||
stderror() | ✅ | |||
Rollup | rollup() | ✅ |
Counters and gauges functions
Hyperfunction type | Hyperfunction name | Toolkit | Experimental | |
---|---|---|---|---|
counter_agg() functions | ||||
Aggregate | counter_agg() | ✅ | ||
Accessor | corr() | ✅ | ||
counter_zero_time() | ✅ | |||
delta() | ✅ | |||
extrapolated_delta() | ✅ | |||
extrapolated_rate() | ✅ | |||
first_time() | ✅ | |||
first_val() | ✅ | |||
idelta_left() | ✅ | |||
idelta_right() | ✅ | |||
intercept() | ✅ | |||
interpolated_delta() | ✅ | |||
interpolated_rate() | ✅ | |||
irate_left() | ✅ | |||
irate_right() | ✅ | |||
last_time() | ✅ | |||
last_val() | ✅ | |||
num_changes() | ✅ | |||
num_elements() | ✅ | |||
num_resets() | ✅ | |||
rate() | ✅ | |||
slope() | ✅ | |||
time_delta() | ✅ | |||
Rollup | rollup() | ✅ | ||
Mutator | with_bounds() | ✅ | ||
gauge_agg() functions | ||||
Aggregate | gauge_agg() | ✅ | ✅ | |
Accessor | corr() | ✅ | ✅ | |
delta() | ✅ | ✅ | ||
extrapolated_delta() | ✅ | ✅ | ||
extrapolated_rate() | ✅ | ✅ | ||
gauge_zero_time() | ✅ | ✅ | ||
idelta_left() | ✅ | ✅ | ||
idelta_right() | ✅ | ✅ | ||
intercept() | ✅ | ✅ | ||
interpolated_delta() | ✅ | ✅ | ||
interpolated_rate() | ✅ | ✅ | ||
irate_left() | ✅ | ✅ | ||
irate_right() | ✅ | ✅ | ||
num_changes() | ✅ | ✅ | ||
num_elements() | ✅ | ✅ | ||
rate() | ✅ | ✅ | ||
slope() | ✅ | ✅ | ||
time_delta() | ✅ | ✅ | ||
Rollup | rollup() | ✅ | ✅ | |
Mutator | with_bounds() | ✅ | ✅ |
Downsampling functions
Hyperfunction type | Hyperfunction name | Toolkit | Experimental |
---|---|---|---|
Function | asap_smooth() | ✅ | |
gp_lttb() | ✅ | ✅ | |
lttb() | ✅ |
Financial analysis functions
Hyperfunction type | Hyperfunction name | Toolkit | Experimental | |
---|---|---|---|---|
candlestick_agg() functions | ||||
Aggregate | candlestick_agg() | ✅ | ||
Pseudo aggregate | candlestick() | ✅ | ||
Accessor | close() | ✅ | ||
close_time() | ✅ | |||
high() | ✅ | |||
high_time() | ✅ | |||
low() | ✅ | |||
low_time() | ✅ | |||
open() | ✅ | |||
open_time() | ✅ | |||
volume() | ✅ | |||
vwap() | ✅ | |||
Rollup | rollup() | ✅ |
Frequency analysis functions
Hyperfunction type | Hyperfunction name | Toolkit | Experimental | |
---|---|---|---|---|
count_min_sketch() functions | ||||
Aggregate | count_min_sketch() | ✅ | ✅ | |
Accessor | approx_count() | ✅ | ✅ | |
freq_agg() functions | ||||
Aggregate | freq_agg() | ✅ | ✅ | |
Accessor | into_values() | ✅ | ||
max_frequency() | ✅ | |||
min_frequency() | ✅ | |||
topn() | ✅ | |||
Alternate aggregate | mcv_agg() | ✅ | ||
Rollup | rollup() | ✅ |
Gapfilling functions
Hyperfunction type | Hyperfunction name | Toolkit | Experimental |
---|---|---|---|
Bucket | time_bucket_gapfill() | ||
Interpolator | interpolate() | ||
locf() |
Minimum and maximum functions
Hyperfunction type | Hyperfunction name | Toolkit | Experimental | |
---|---|---|---|---|
max_n() functions | ||||
Aggregate | max_n() | ✅ | ||
Accessor | into_array() | ✅ | ||
into_values() | ✅ | |||
Rollup | rollup() | ✅ | ||
max_n_by() functions | ||||
Aggregate | max_n_by() | ✅ | ||
Accessor | into_values() | ✅ | ||
Rollup | rollup() | ✅ | ||
min_n() functions | ||||
Aggregate | min_n() | ✅ | ||
Accessor | into_array() | ✅ | ||
into_values() | ✅ | |||
Rollup | rollup() | ✅ | ||
min_n_by() functions | ||||
Aggregate | min_n_by() | ✅ | ||
Accessor | into_values() | ✅ | ||
Rollup | rollup() | ✅ |
Percentile approximation functions
Hyperfunction type | Hyperfunction name | Toolkit | Experimental | |
---|---|---|---|---|
tdigest() functions | ||||
Aggregate | tdigest() | ✅ | ||
Accessor | approx_percentile() | ✅ | ||
approx_percentile_rank() | ✅ | |||
mean() | ✅ | |||
num_vals() | ✅ | |||
Rollup | rollup() | ✅ | ||
uddsketch() functions | ||||
Aggregate | uddsketch() | ✅ | ||
Accessor | approx_percentile() | ✅ | ||
approx_percentile_array() | ✅ | |||
approx_percentile_rank() | ✅ | |||
error() | ✅ | |||
mean() | ✅ | |||
num_vals() | ✅ | |||
Alternate aggregate | percentile_agg() | ✅ | ||
Rollup | rollup() | ✅ |
State tracking functions
Hyperfunction type | Hyperfunction name | Toolkit | Experimental | |
---|---|---|---|---|
compact_state_agg() functions | ||||
Aggregate | compact_state_agg() | ✅ | ✅ | |
Accessor | duration_in() | ✅ | ✅ | |
interpolated_duration_in() | ✅ | ✅ | ||
into_values() | ✅ | ✅ | ||
Rollup | rollup() | ✅ | ✅ | |
heartbeat_agg() functions | ||||
Aggregate | heartbeat_agg() | ✅ | ||
Accessor | dead_ranges() | ✅ | ||
downtime() | ✅ | |||
interpolate() | ✅ | |||
interpolated_downtime() | ✅ | |||
interpolated_uptime() | ✅ | |||
live_at() | ✅ | |||
live_ranges() | ✅ | |||
num_gaps() | ✅ | |||
num_live_ranges() | ✅ | |||
trim_to() | ✅ | |||
uptime() | ✅ | |||
Rollup | rollup() | ✅ | ||
state_agg() functions | ||||
Aggregate | state_agg() | ✅ | ||
Accessor | duration_in() | ✅ | ||
interpolated_duration_in() | ✅ | |||
interpolated_state_periods() | ✅ | |||
interpolated_state_timeline() | ✅ | |||
into_values() | ✅ | |||
state_at() | ✅ | |||
state_periods() | ✅ | |||
state_timeline() | ✅ | |||
Rollup | rollup() | ✅ |
Statistical and regression analysis functions
Hyperfunction type | Hyperfunction name | Toolkit | Experimental | |
---|---|---|---|---|
stats_agg() (one variable) functions | ||||
Aggregate | stats_agg() (one variable) | ✅ | ||
Accessor | average() | ✅ | ||
kurtosis() | ✅ | |||
num_vals() | ✅ | |||
skewness() | ✅ | |||
stddev() | ✅ | |||
sum() | ✅ | |||
variance() | ✅ | |||
Rollup | rolling() | ✅ | ||
rollup() | ✅ | |||
stats_agg() (two variables) functions | ||||
Aggregate | stats_agg() (two variables) | ✅ | ||
Accessor | average_y() , average_x() | ✅ | ||
corr() | ✅ | |||
covariance() | ✅ | |||
determination_coeff() | ✅ | |||
intercept() | ✅ | |||
kurtosis_y() , kurtosis_x() | ✅ | |||
num_vals() | ✅ | |||
skewness_y() , skewness_x() | ✅ | |||
slope() | ✅ | |||
stddev_y() , stddev_x() | ✅ | |||
sum_y() , sum_x() | ✅ | |||
variance_y() , variance_x() | ✅ | |||
x_intercept() | ✅ | |||
Rollup | rolling() | ✅ | ||
rollup() | ✅ |
Time weighted calculations functions
Hyperfunction type | Hyperfunction name | Toolkit | Experimental | |
---|---|---|---|---|
time_weight() functions | ||||
Aggregate | time_weight() | ✅ | ||
Accessor | average() | ✅ | ||
first_time() | ✅ | |||
first_val() | ✅ | |||
integral() | ✅ | |||
interpolated_average() | ✅ | |||
interpolated_integral() | ✅ | |||
last_time() | ✅ | |||
last_val() | ✅ | |||
Rollup | rollup() | ✅ |
General functions
Hyperfunction type | Hyperfunction name | Toolkit | Experimental |
---|---|---|---|
Bucket | time_bucket() | ||
timescaledb_experimental.time_bucket_ng() | ✅ | ||
One step aggregate | approximate_row_count() | ||
first() | |||
histogram() | |||
last() | |||
One step operation | days_in_month() | ✅ | |
month_normalize() | ✅ |
Keywords
Found an issue on this page?Report an issue or Edit this page in GitHub.