SQL查询中未被引用也不展示的子查询为何要设置别名
子查询别名设置的核心原因
- 语法强制要求
你使用的BigQuery标准SQL语法有硬性规定:所有放到
FROM或者JOIN后的子查询(也叫派生表)必须要有别名,哪怕你后续不用这个别名也得写,删掉AS station_num_trips的话查询会直接抛出语法错误,完全无法运行。
- 预留后续扩展空间
你现在没有用到这个别名,纯粹是因为当前查询里的字段没有重名冲突:
start_station_id仅存在于子查询中,station_id仅存在于citibike_stations表中,数据库可以自动识别字段归属,不需要额外加表别名限定。如果之后你调整查询逻辑,比如两个表出现同名字段,比如子查询也返回name字段,你就需要用station_num_trips.name的格式明确指定字段归属,这时候别名就会派上用场。
- 提升代码可读性
station_num_trips这个别名已经直观说明该子查询的作用是统计各站点的骑行次数,其他开发者读代码的时候不用逐行梳理子查询逻辑,扫一眼别名就能理清表关联关系,后续迭代维护代码也更方便。
内容的提问来源于stack exchange,提问作者Pranamya Sequeira
相关产品推荐
相关产品推荐

