У меня есть два набора данных c: 1) поездки на велосипедах и 2) станции, где мне нужно найти станцию с наибольшим средним расстоянием поездки. Я присоединился к таблицам из двух наборов данных
bigquery-public-data.london_bicycles.cycle_hire
bigquery-public-data.london_bicycles.cycle_stations
Каждая поездка имеет начальную и конечную станции. Поездки обычно имеют конечную станцию, отличную от начальной, поэтому расстояние каждый раз отличается. Хотите выяснить, какая начальная станция имеет в среднем самые длинные поездки / расстояние до своей конечной станции, то есть, какие поездки в среднем относятся к самым дальним конечным станциям для байкеров.
Я бы хотел, чтобы выход 1) был чем-то например:
Trip Start_station_coordinate start_st_name end_station_coordinate end_st_name km_dist
1 POINT(-0.123 51.123) A-station POINT(-0.123 51.123) B-station ??
2 POINT(-0.123 51.123) C-station POINT(-0.123 51.123) D-station ??
3 POINT(-0.123 51.123) D-station POINT(-0.123 51.123) F-station ??
... и 2) группировать по start_station, которая имеет наибольшее среднее значение km_distance для каждой поездки. Итак, что-то вроде этого:
start_station average_distance_descending
A-station 20 km
B-station 15 km
C-station 3 km
Мой код - JOIN, я не могу включить вышеупомянутое в свой запрос (поскольку я совершенно новичок в sql). Я попробовал следующее с самой проблемной строкой c в самом конце:
`SELECT ST_GeogPoint(stations1.longitude, stations1.latitude) as WKT1
,stations1.id
,ST_GeogPoint(stations2.longitude, stations2.latitude) as WKT2
,stations2.id as id_2
,trips.end_station_id
,trips.start_station_id
from bigquery-public-data.london_bicycles.cycle_hire as trips
Inner JOIN bigquery-public-data.london_bicycles.cycle_stations as stations1
ON trips.start_station_id = stations1.id
Inner JOIN bigquery-public-data.london_bicycles.cycle_stations as stations2
ON trips.end_station_id = stations2.id
order by AVG(st_distance(WKT1, WKT2))`
BigQuery говорит: " Предложение ORDER BY разрешает агрегирование только в том случае, если агрегация списка GROUP BY или SELECT присутствует в [22: 5] ", со ссылкой на последнюю строку. Я ломал голову над тем, как найти наибольшие средние расстояния (если это вообще возможно) и как объединить их с моей операцией JOIN.
Как мне написать это правильно, чтобы найти правильные расстояния ?? Это чрезвычайно важная задача для меня, и я нахожусь в крайнем сроке без надежды и надежды на помощь как можно скорее