У меня есть два фрагмента кода, которые по сути должны делать одно и то же, но их результаты различаются, и я не могу понять, почему.
Это первый код:
SELECT
subquery.start_station_id,
subquery.avg_duration
FROM
(
SELECT
start_station_id,
AVG(tripduration) as avg_duration
FROM bigquery-public-data.new_york_citibike.citibike_trips
GROUP BY start_station_id) as subquery
ORDER BY avg_duration DESC;
Это второй код:
SELECT
start_station_id,
AVG(tripduration) as avg_duration
FROM
bigquery-public-data.new_york.citibike_trips
GROUP BY
start_station_id
ORDER BY
avg_duration DESC;
Предполагается, что оба этих кода определяют среднюю продолжительность поездки на каждой станции. Насколько я понимаю, первый код по сути делает то же самое, что и второй, но использует подзапрос. Оказывается, я ошибаюсь, потому что результаты обоих этих фрагментов кода разные. Чего я здесь не вижу?
Первый фрагмент кода — это фактически правильный ответ на проблему. Я попытался решить эту проблему без использования подзапроса, потому что это довольно простая проблема. Вам необходимо узнать среднюю продолжительность поездки по каждой станции. Насколько я понимаю, вы просто используете функцию AVG, чтобы узнать среднюю продолжительность поездки, а затем группируете ее по идентификатору станции. Но оба этих кода дают совершенно разные результаты. Хоть убей, я не могу понять почему.
Любая помощь глубоко ценится, Спасибо.


Кажется, что в вашем операторе SELECT вы не используете одну и ту же таблицу в обоих запросах, что может быть причиной того, что результат не одинаковый.
FROM bigquery-public-data.new_york_citibike.citibike_trips
FROM bigquery-public-data.new_york.citibike_trips
Как я мог этого не видеть! Большое спасибо
Пожалуйста прочти ; Пожалуйста, не загружайте изображения кода/данных/ошибок.