fitotrack-logger/stats.py

20 lines
992 B
Python

from sqlalchemy.engine import Connection
from tabulate import tabulate
def print_stats(db: Connection):
overall_stats = """
select distinct
td.t::date,
date_trunc('second', training_duration.start_time::time) as start_time,
date_trunc('second', training_duration.end_time::time) as end_time,
training_duration.duration as duration,
round(((t.moving_distance)/1000)::numeric, 2) as distance,
round(( (t.moving_distance / 1000) / (select extract(epoch from training_duration.duration)/3600))::numeric, 1) as pace_kmh
from training t
join training_data td on (t.id = td.training_id)
join training_duration on (t.id = training_duration.id)
order by td.t::date, date_trunc('second', training_duration.start_time::time) asc
"""
print(tabulate(list(db.execute(overall_stats)),
headers = ["date", "start_time", "end_time", "duration", "distance", "pace (km/h)"]))