Что делает внутренний запрос в следующем запросе SQL?Что это значит, когда две функции datetime находятся в функции min? - PullRequest
1 голос
/ 23 июня 2019

Я выполняю домашние задания по курсу систем баз данных в 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...