【发布时间】:2021-11-29 08:54:22
【问题描述】:
你好!我有两个表:trips 和 stations,我正在尝试打印不同车站的 ID 和名称以及从该车站出发的总次数。
ID 和名称来自 stations 表,而行程次数来自 trips 表,所以我继续创建了一个查询:
- 选择 id、name 和 num_rides
- FROM (SELECT COUNT (*) num_rides FROM tableB AS b) AS num_rides
- INNER JOIN tableA 作为一个 ON a.station_id = b.start_station_id
问题出在外部查询的 JOIN 语句中,它似乎无法识别我的表的“b”别名,我在 内部查询。 我尝试单独运行查询,它们都工作正常。那么我假设问题是计算机不记得我在外部查询中的内部查询别名,但这没有多大意义,不是吗?
错误状态:“无法识别的名称:trips”--->trips 是我用于表 B 的别名。
SELECT
station_id,
name,
num_of_rides AS num_of_rides_starting_at
FROM
(
SELECT
start_station_id,
COUNT(*) number_of_rides
FROM
bigquery-public-data.new_york_citibike.citibike_trips AS trips
GROUP BY
trips.start_station_id
)
AS num_of_rides
INNER JOIN
bigquery-public-data.new_york_citibike.citibike_stations AS stations ON stations.station_id = trips.start_station_id
ORDER BY num_of_rides DESC ```
【问题讨论】:
-
没有理由'识别我的表的“b”别名,我在内部查询中使用了别名'。你期待它的理由是什么(参考权威文件)? minimal reproducible example
标签: sql subquery inner-join alias