20 lines
992 B
Python
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)"])) |