如何将BigQuery中GA实时视图SQL转换为标准SQL?
转换GA实时会话视图到BigQuery Standard SQL
没问题,我来帮你把这段Google Analytics实时会话视图的Legacy SQL转换成BigQuery Standard SQL,同时完全保留原有的业务逻辑——也就是筛选出每个visitKey对应的最新导出记录。
转换后的完整SQL
SELECT * FROM `XXX.ga_realtime_sessions_20180424` WHERE exportKey IN ( SELECT exportKey FROM ( SELECT exportKey, exportTimeUsec, MAX(exportTimeUsec) OVER (PARTITION BY visitKey) AS maxexportTimeUsec FROM `XXX.ga_realtime_sessions_*` ) WHERE exportTimeUsec = maxexportTimeUsec )
如果需要创建/替换视图,使用以下语法:
CREATE OR REPLACE VIEW `XXX.ga_realtime_sessions_view_YYYYMMDD` AS SELECT * FROM `XXX.ga_realtime_sessions_20180424` WHERE exportKey IN ( SELECT exportKey FROM ( SELECT exportKey, exportTimeUsec, MAX(exportTimeUsec) OVER (PARTITION BY visitKey) AS maxexportTimeUsec FROM `XXX.ga_realtime_sessions_*` ) WHERE exportTimeUsec = maxexportTimeUsec )
关键改动说明
- 表引用格式: Legacy SQL用方括号
[dataset.table],Standard SQL改用反引号`dataset.table`,这是BigQuery标准SQL的要求 - 通配符表匹配: 原语法里的
...用来匹配系列表,Standard SQL替换为*,比如`XXX.ga_realtime_sessions_*`会匹配所有以ga_realtime_sessions_开头的实时会话表 - 逻辑完全保留: 原有的窗口函数逻辑(按
visitKey分组取最新的exportTimeUsec)没有改动,确保结果和原视图一致
内容的提问来源于stack exchange,提问作者Fritz Weißenwolf
相关产品推荐
相关产品推荐

