Skip to main content
A couple of examples to get you started with Continuous Query:

Daily Sleep Analysis

import vitalx.aggregation as va

va.select(
    va.group_key("*"), 
    va.Sleep.col("efficiency").mean(),
    va.Sleep.score().mean(),
    va.Sleep.chronotype().newest()
).where(
    "type = 'long_sleep'"
).group_by(
    va.date_trunc(va.Sleep.index(), 1, "day")
).finalize()

Weekly Insights Into Users Activity

import vitalx.aggregation as va

va.select(
    va.group_key("*"), 
    va.Activity.col("heart_rate_resting").mean(),
    va.Activity.col("calories_total").max(),
    va.Activity.col("steps").min(),
    va.Activity.col("duration_active_seconds").mean()
).group_by(
    va.date_trunc(va.Activity.index(), 1, "week")
).finalize()

First Glucose Measurement Of The Day Grouped By Source Type and Provider

import vitalx.aggregation as va

va.select(
    va.group_key("*"),
    va.Timeseries.col("glucose").field("value").oldest()
).group_by(
    va.date_trunc(va.Timeseries.index(), 1, "day"),
    va.Source.col("source_provider"),
    va.Source.col("source_type")
).finalize()

Daily Summaries of Metabolic Biomarkers Grouped By Source Type and Provider

import vitalx.aggregation as va

va.select(
    va.group_key("*"),
    va.Timeseries.col("glucose").field("value").mean(),
    va.Timeseries.col("heartrate").field("value").mean(),
    va.Timeseries.col("steps").field("value").sum(),
    va.Timeseries.col("hrv").field("value").mean(),
    va.Timeseries.col("calories_active").field("value").sum(),
    va.Timeseries.col("body_temperature").field("value").mean(),
    va.Timeseries.col("body_temperature").field("value").min(),
    va.Timeseries.col("body_temperature").field("value").max(),
).group_by(
    va.date_trunc(va.Timeseries.index(), 1, "day"),
    va.Source.col("source_provider"),
    va.Source.col("source_type"),
).finalize()

Weekly Exercise Summary

import vitalx.aggregation as va

va.select(
    va.group_key("*"),
    va.Workout.col("calories").max(),
    va.Workout.col("calories").min(),
    va.Workout.col("heart_rate_zone_1").mean(),
    va.Workout.col("heart_rate_zone_2").mean(),
    va.Workout.col("heart_rate_zone_3").mean(),
    va.Workout.col("heart_rate_zone_4").mean(),
    va.Workout.col("heart_rate_zone_5").mean(),
    va.Workout.col("heart_rate_zone_6").mean(),
    va.Workout.col("distance_meter").max(),
    va.Workout.col("duration_active_second").mean()
).group_by(
    va.date_trunc(va.Workout.index(), 1, "week")
).finalize()