ВЫБЕРИТЕ столбец ссылок на выражения списка xxx, который не сгруппирован и не агрегирован по адресу, зачем использовать подзапрос?

# #sql #google-bigquery

Вопрос:

Так что я в некотором роде новичок в SQL и следил за некоторыми учебными курсами в Интернете. Я хочу сравнить num_bikes_available на станции со средним значением num_bikes_available. Мой вопрос в том, почему он не может просто показать среднее значение, используя предложение OUTER SELECT? Почему это нужно делать с помощью ПОДЗАПРОСА? Мой Ответ. Ответ на учебник.

Ответ №1:

Запрос SELECT AVG(num_bikes_available) FROM citibike_stations вернет одну строку со средним значением, рассчитанным по всем строкам.

Теперь, если вы добавляете station_id «нравится SELECT station_id, AVG(num_bikes_available) FROM citibike_stations «, это также должно возвращать одну строку, но BigQuery не знает, какое именно station_id значение вам нужно. Поэтому вы видите эту ошибку.

BigQuery может показывать среднее значение для каждого отдельного station_id значения, которое он находит, но для этого ему нужно GROUP BY предложение like SELECT station_id, AVG(num_bikes_available) FROM citibike_stations GROUP BY station_id .