将视图 ga_realtime_sessions_view_YYYYMMDD 更改为标准 sql
Posted
技术标签:
【中文标题】将视图 ga_realtime_sessions_view_YYYYMMDD 更改为标准 sql【英文标题】:change view ga_realtime_sessions_view_YYYYMMDD to standard sql 【发布时间】:2018-04-24 08:54:46 【问题描述】:大约一年前,我激活了从 Google Analytics 到 BigQuery 的流式导出,但在将实时视图 (ga_realtime_sessions_view_YYYYMMDD) 的 SQL 语法更改为标准 SQL 时遇到了麻烦。
如何更改此视图的 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_20180424]
)
WHERE exportTimeUsec >= maxexportTimeUsec
);
【问题讨论】:
视图是如何定义的?在 BigQuery 用户界面中查找,然后将查询文本作为问题的一部分分享。 我认为这是视图的定义? 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_20180424]) WHERE exportTimeUsec >= maxexportTimeUsec); 【参考方案1】:您可以创建此表单的标准 SQL 视图:
CREATE VIEW `XXX.ga_realtime_view` AS
SELECT
_TABLE_SUFFIX AS suffix,
ARRAY_AGG(t ORDER BY exportTimeUsec DESC LIMIT 1)[OFFSET(0)].*
FROM `XXX.ga_realtime_sessions_20*` AS t
GROUP BY suffix, visitKey;
这将根据exportTimeUsec
为每个visitKey
返回最新的行。查询视图时,过滤与所需日期相对应的后缀。例如,
SELECT *
FROM `XXX.ga_realtime_view`
WHERE suffix = '180424';
这会从XXX.ga_realtime_sessions_20180424
表中返回数据。
【讨论】:
以上是关于将视图 ga_realtime_sessions_view_YYYYMMDD 更改为标准 sql的主要内容,如果未能解决你的问题,请参考以下文章
如何从视图将值传递给 Django Form init 方法?
为啥在将单元格插入带有静态单元格的表格视图时需要 tableView(_:indentationLevelForRowAt:)