BigQuery Data Studio自定义查询

时间:2016-12-13 06:01:58

标签: google-bigquery google-data-studio

我正在尝试将BigQuery中的自定义查询与Data Studio连接。我从这里阅读了指南:https://support.google.com/360suite/datastudio/answer/6370296?hl=en&ref_topic=6370347但我还有一些问题。

我的查询应该提取最近7天的漏斗流数据,因此在Data Studio中使用自定义查询时,如果可能,我如何以BQ将数据提取的方式编写?

如果没有,我如何修改我的查询,以便Data Studio根据我在Data Studio中定义的日期范围从BigQuery中提取数据?我将在Data Studio中添加日期范围选择器。

以下是我获取目标渠道数据的查询示例。

SELECT
  s0.fullVisitorId,
  s0.visitId,
  s0.firstHit,
  s1.firstHit
FROM (
SELECT
    fullVisitorId,
    visitId,
    MIN(hits.hitNumber) AS firstHit
    FROM
    (TABLE_DATE_RANGE([xxx.ga_sessions_],
                DATE_ADD(CURRENT_TIMESTAMP(), -7, 'DAY'),
                CURRENT_TIMESTAMP()))
    WHERE
    REGEXP_MATCH(hits.page.pagePath, '/pageA/')
    AND totals.visits = 1
    GROUP BY
    fullVisitorId,
    visitId) s0
LEFT OUTER JOIN EACH (
SELECT
    fullVisitorId,
    visitId,
    MIN(hits.hitNumber) AS firstHit
    FROM
    (TABLE_DATE_RANGE([xxx.ga_sessions_],
                DATE_ADD(CURRENT_TIMESTAMP(), -7, 'DAY'),
                CURRENT_TIMESTAMP()))
    WHERE
    REGEXP_MATCH(hits.page.pagePath, '/pageB/')
    AND totals.visits = 1
    GROUP BY
    fullVisitorId,
    visitId) s1
ON
    s0.fullVisitorID = s1.fullVisitorID
    AND s0.visitID = s1.visitID

1 个答案:

答案 0 :(得分:0)

晚于游戏,但这是对任何对此进行评论的人的答复:

如果我正确理解了您的问题,那么要点是您希望能够在Data Studio中显示自定义查询的最后x天。如果这是问题,那么简单的答案就是提供日期范围内的所有数据。即查看整年的数据,然后让Data Studio使用此处描述的日期范围过滤方法将其过滤掉:

https://www.youtube.com/watch?v=Jafy-CB148k

我相信您的问题与Google Data Studio的关系比BigQuery查询更多。我发现使用Data Studio时,最好使查询保持简单,然后在Data Studio中进行过滤以进行更复杂的操作,因为这样会使您在图形中具有更大的可定制性。考虑到上述情况,假设您没有 巨大的数据集,您的查询可能看起来像这样:

SELECT
  s0.fullVisitorId,
  s0.visitId,
  s0.firstHit,
  s1.firstHit
FROM (
SELECT
    fullVisitorId,
    visitId,
    MIN(hits.hitNumber) AS firstHit
    FROM [xxx.ga_sessions_]
    WHERE
    REGEXP_MATCH(hits.page.pagePath, '/pageA/')
    AND totals.visits = 1
    GROUP BY
    fullVisitorId,
    visitId) s0
LEFT OUTER JOIN EACH (
SELECT
    fullVisitorId,
    visitId,
    MIN(hits.hitNumber) AS firstHit
    FROM [xxx.ga_sessions_]
    WHERE
    REGEXP_MATCH(hits.page.pagePath, '/pageB/')
    AND totals.visits = 1
    GROUP BY
    fullVisitorId,
    visitId) s1
ON
    s0.fullVisitorID = s1.fullVisitorID
    AND s0.visitID = s1.visitID

请注意,我删除了硬编码的日期范围,现在由Data Studio的日期过滤器来过滤所需的数据。