将视图 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的主要内容,如果未能解决你的问题,请参考以下文章

ios将3个视图放置在另一个具有自动布局的视图中

如何将视图保持在最大宽度,直到前导/尾随尺寸变得太小?

如何从视图将值传递给 Django Form init 方法?

为啥在将单元格插入带有静态单元格的表格视图时需要 tableView(_:indentationLevelForRowAt:)

如何将变量从控制器传递到视图 joomla mvc

将文件夹附加到所有视图路径