BigQuery SQL 查询全解析
1. BigQuery SQL 基础
1.1 SQL 方言支持
BigQuery 支持符合 SQL:2011 标准的 SQL 方言。当规范不明确或缺失时,它会遵循现有 SQL 引擎的惯例。在一些没有规范的领域,如机器学习,BigQuery 会定义自己的语法和语义。
1.2 旧版 SQL(Legacy SQL)
在很长一段时间里,BigQuery 仅支持有限的 SQL 子集,并带有一些 Google 的增强功能。这是因为它基于 Google 内部的 SQL 查询引擎 Dremel,该引擎最初用于处理 Protocol Buffers(Protobufs)中的日志数据。Dremel 使用的 SQL 方言(现在称为旧版 SQL)非常适合 Protobufs 的层次结构。例如,在 Dremel 中, COUNT(*) 计算的是最重复字段中的非 NULL 值数量。
如今,Google Cloud Platform(GCP)Cloud Console 中的 BigQuery 用户界面(UI)默认使用标准 SQL,新功能也不会再移植到旧版 SQL。但有些工具和用户界面仍默认使用旧版 SQL。如果遇到这种情况,可以在查询的第一行加上 #standardsql ,示例如下:
#standardsql
SELECT DISTINCT gender
FROM `bigquery-public-data`.new_york_citibike.citibike_trips
超级会员免费看
订阅专栏 解锁全文
38

被折叠的 条评论
为什么被折叠?



