Google analytics 如何在BigQuery中查询直返访客

Google analytics 如何在BigQuery中查询直返访客,google-analytics,google-bigquery,Google Analytics,Google Bigquery,我试图计算出有多少用户在使用BigQuery访问网站后作为直接用户返回 这就是我到目前为止所做的。为了获得访问后直接返回的用户数量,我使用 organic_user.visitNumber

我试图计算出有多少用户在使用BigQuery访问网站后作为直接用户返回

这就是我到目前为止所做的。为了获得访问后直接返回的用户数量,我使用 organic_user.visitNumber
SELECT
  organic_user.date,
  COUNT (DISTINCT direct_user.fullVisitorId) AS return_direct_user
FROM
  (
    SELECT
      date,
      fullVisitorId,
      visitNumber
    FROM
      `ga_sessions_*`,
      UNNEST(hits) as hits
    WHERE
      DATE BETWEEN '20190814'
      AND '20190911'
      AND channelGrouping = 'Organic Search'
  ) AS organic_user
  INNER JOIN (
    SELECT
      date,
      fullVisitorId,
      visitNumber
    FROM
      `ga_sessions_*`,
      UNNEST(hits) as hits
    WHERE
      DATE BETWEEN '20190814'
      AND '20190911'
      AND channelGrouping = 'Direct'
  ) AS direct_user ON organic_user.fullVisitorId = direct_user.fullVisitorId
WHERE
  organic_user.visitNumber < direct_user.visitNumber
GROUP BY
  date
ORDER BY
  date ASC
有人能验证这个查询是正确的吗?
如果没有,您能提供解决方案吗?

根据您在评论中提供的所有澄清,我能够对您的原始查询进行一些修改:

SELECT
  direct_user.date,
  COUNT (DISTINCT direct_user.fullVisitorId) AS return_direct_user
FROM (
  SELECT
    date,
    fullVisitorId,
    visitNumber
  FROM
    `bigquery-public-data`.google_analytics_sample.`ga_sessions_*`,
    UNNEST(hits) AS hits
  WHERE
    DATE BETWEEN '20161214'
    AND '20180911'
    AND channelGrouping = 'Organic Search' ) AS organic_user
INNER JOIN (
  SELECT
    date,
    fullVisitorId,
    visitNumber
  FROM
    `bigquery-public-data`.google_analytics_sample.`ga_sessions_*`,
    UNNEST(hits) AS hits
  WHERE
    DATE BETWEEN '20161214'
    AND '20180911'
    AND channelGrouping = 'Direct' ) AS direct_user
ON
  organic_user.fullVisitorId = direct_user.fullVisitorId
AND organic_user.visitNumber < direct_user.visitNumber
GROUP BY
  direct_user.date
ORDER BY
  direct_user.date ASC
以下是关于我所做更改的一些考虑:

我注意到指定子查询组日期很重要 正在为组使用。因为我们计算的是“直接”访问 每天,当它们发生时,我们计算是有意义的。 我移动了organic_user.visitNumber我希望此信息结果对您有所帮助。

此查询对我来说似乎正确,您是否遇到任何意外结果?我发现COUNT DISTINCT fullvisitorID将返回不同的结果,这取决于我在本例中使用的别名organic_user和direct_user,当我将channelgrouping添加到SELECT子句时。所以我想知道在SELECT子句中应该使用哪个别名。你能详细说明一下吗?我试图将channelGrouping添加到SELECT子句中,但仍然得到相同的结果。对于这个查询结构,选择哪一个并不重要。我想改变的唯一一件事就是在WooSt==1中添加一个WHERE子句到“有机搜索”。特别是如果你想查看那些最初来自有机搜索的直接访问,我想感谢你的建议。例如,如果我在SELECT子句中使用了direct_user.channelGrouping,而在direct_user中没有使用channelGrouping='direct',那么结果中每个通道的编号都不同。另外,另一件事是,结果中COUNT DISTINCT fullvisitorID的数量总是高于GA中返回的访客总数,这很奇怪,因为我的查询有多个条件。由于这些原因,我不确定此查询是否正确。我想知道是否应该将“visitId”添加到内部联接条件中?