Я выполняю домашние задания по курсу систем баз данных в Carnegie Mellon https://15445.courses.cs.cmu.edu/fall2018/homework1/
Я застрял в вопросе 4. Правильный запрос SQL на SQLite3, заданный в решениях для домашних заданий, заключается в следующем, но я запутался в отношении функций strftime и datetime до предложения GROUP BY и начиная с ROUND (SUM ...
WITH dates AS (SELECT date(start_time) AS tdate
FROM trip
UNION
SELECT date(end_time) AS tdate
FROM trip)
SELECT tdate,
ROUND(SUM(strftime('%s', MIN(datetime(end_time), datetime(tdate, '+1
day'))) - strftime('%s', MAX(datetime(start_time), datetime(tdate))))
* 1.0 / (SELECT count(distinct(bike_id))
FROM trip
WHERE bike_id <= 100), 4) AS avg_duration
FROM trip, dates
WHERE bike_id <= 100
AND datetime(start_time) < datetime(tdate, '+1 day')
AND datetime(end_time) > datetime(tdate)
GROUP BY tdate
ORDER BY avg_duration DESC LIMIT 10;