Google analytics SQL for GA会话(来自BigQuery),页面包含特定时间范围内的事件

Google analytics SQL for GA会话(来自BigQuery),页面包含特定时间范围内的事件,google-analytics,google-bigquery,Google Analytics,Google Bigquery,尝试优化SQL查询以查找包含在15天内发生“转换”事件的页面的GA会话。如果页面(例如“/example/product”)在6月15日包含GA事件“conversion”,那么我想统计从6月1日到15日访问该页面的所有会话,无论这些会话是否包含转换事件 有没有比加入更好的方法来获取这些数据?也许是开窗 我有一个可以工作的查询,但当查询较长时间范围内的表时,它的运行速度越来越慢,最终会失败。我首先只选择了在整个查询时间范围内发生转换的页面的会话,然后加入到具有转换日期的相同页面,最后只选择转换日

尝试优化SQL查询以查找包含在15天内发生“转换”事件的页面的GA会话。如果页面(例如“/example/product”)在6月15日包含GA事件“conversion”,那么我想统计从6月1日到15日访问该页面的所有会话,无论这些会话是否包含转换事件

有没有比加入更好的方法来获取这些数据?也许是开窗

我有一个可以工作的查询,但当查询较长时间范围内的表时,它的运行速度越来越慢,最终会失败。我首先只选择了在整个查询时间范围内发生转换的页面的会话,然后加入到具有转换日期的相同页面,最后只选择转换日期和会话日期之间的日期差在0和15之间的会话

SELECT
  date,
  COUNT (DISTINCT sessionId) AS sessions
FROM (
  SELECT
    date,
    CONCAT(CAST(visitId AS STRING),fullVisitorId) AS sessionId,
    hits.page.pagePath AS pagepath
  FROM
    `[dataset].ga_sessions_201906*` t,
    t.hits hits
  WHERE
    hits.page.pagePath IN (
    SELECT
      DISTINCT(hits.page.pagePath) AS pagepath
    FROM
      `[dataset].ga_sessions_201906*` t,
      t.hits hits
    WHERE
      REGEXP_CONTAINS( hits.eventInfo.eventAction, r'(?i)conversion'))
  GROUP BY
    date,
    visitId,
    fullVisitorId,
    pagepath)
INNER JOIN (
  SELECT
    DISTINCT(hits.page.pagePath) AS pagepath,
    date AS conversionDate
  FROM
    `[dataset].ga_sessions_201906*` t,
    t.hits hits
  WHERE
    REGEXP_CONTAINS( hits.eventInfo.eventAction, r'(?i)conversion')
  ORDER BY
    pagepath,
    conversionDate)
USING
  (pagepath)
WHERE
  DATE_DIFF(PARSE_DATE('%Y%m%d',
      conversionDate),PARSE_DATE('%Y%m%d',
      date), DAY) BETWEEN 0 AND 15
GROUP BY
  date
ORDER BY
  date

它确实会在较短的时间段内产生预期的结果,但在较长的时间段内进行测试时,查询失败,并显示以下消息:“该服务当前不可用。”

我建议删除内部子查询中的“ORDER BY”。当数据集变大时,这是一种不必要的计算,经常会导致资源错误。您所说的“在更长时间内进行测试”是什么意思?据我所知,您正在查询30天内的分区表(ga_sessions_201906*),其中获得的数据是在定义的月份内15天内发生的数据,例如。,如果事件发生在6月1日,则仅显示1天的“转换”事件,因此,您是否计划查询定义日期之外的数据?提前谢谢。我建议删除您内部子查询中的“ORDER BY”。当数据集变大时,这是一种不必要的计算,经常会导致资源错误。您所说的“在更长时间内进行测试”是什么意思?据我所知,您正在查询30天内的分区表(ga_sessions_201906*),其中获得的数据是在定义的月份内15天内发生的数据,例如。,如果事件发生在6月1日,则仅显示1天的“转换”事件,因此,您是否计划查询定义日期之外的数据?提前谢谢。