Google bigquery 顺便说一下,这也是我在上面提供的原始查询中的一个问题。非常感谢您的输入Martin!然而不幸的是,结果并不是我所希望的。使用您提出的查询,我精确地从GA界面复制了数字,但是基于段的。但现在有太多的数据被过滤掉了。例如,假设一个访问者点击了一个URL包含“蛋
Google bigquery 顺便说一下,这也是我在上面提供的原始查询中的一个问题。非常感谢您的输入Martin!然而不幸的是,结果并不是我所希望的。使用您提出的查询,我精确地从GA界面复制了数字,但是基于段的。但现在有太多的数据被过滤掉了。例如,假设一个访问者点击了一个URL包含“蛋,google-bigquery,Google Bigquery,顺便说一下,这也是我在上面提供的原始查询中的一个问题。非常感谢您的输入Martin!然而不幸的是,结果并不是我所希望的。使用您提出的查询,我精确地从GA界面复制了数字,但是基于段的。但现在有太多的数据被过滤掉了。例如,假设一个访问者点击了一个URL包含“蛋糕”的页面(这个点击应该被过滤掉),但是在同一个会话中,后来做了一个事务,上面提到的3个条件都通过了,我仍然希望该事务被包括在内。因此,实际上我希望上述条件以命中为基础,而不是以会话为基础。进一步澄清:我的目标实际上是从GA视图中复制数字,而G
顺便说一下,这也是我在上面提供的原始查询中的一个问题。非常感谢您的输入Martin!然而不幸的是,结果并不是我所希望的。使用您提出的查询,我精确地从GA界面复制了数字,但是基于段的。但现在有太多的数据被过滤掉了。例如,假设一个访问者点击了一个URL包含“蛋糕”的页面(这个点击应该被过滤掉),但是在同一个会话中,后来做了一个事务,上面提到的3个条件都通过了,我仍然希望该事务被包括在内。因此,实际上我希望上述条件以命中为基础,而不是以会话为基础。进一步澄清:我的目标实际上是从GA视图中复制数字,而GA视图不是加载到BigQuery的视图。上面的条件用作此视图的过滤器。为了在会话级别上重现数据(因此没有提供所需的输出,请参见上面评论中的我的输入),我使用了以下部分,请参见此屏幕截图:这意味着另一个视图排除了会话-可能是因为会话只有一个页面视图?否则,我根本看不到筛选命中率会如何影响这一点。您可以尝试添加
和hitnumber=1
(仅用于估计)以查看它是否更接近吗?另一个视图不排除会话;GA视图筛选按命中级别筛选数据,而不是按会话级别筛选数据。在您提供的查询中,整个会话被排除在外,在会话中的任何命中中,3个条件中的一个确实适用(添加hitnumber=1不起作用,我在数据中看到,具有多个命中的整个会话也被排除在外,也包括我希望包含在数据中的命中)。但我只想排除3个条件中的一个适用的命中。例如,如果一个会话有40次点击,则可能根据条件排除5次点击,并包括35次点击。
#standard sql
SELECT
Date,
SUM(totals.visits) AS Sessions,
SUM(totals.transactions) AS Transactions
FROM
`[projectID].[DatasetID].ga_sessions_*`
WHERE
_TABLE_SUFFIX BETWEEN '20181217'
AND '20181217'
AND totals.visits > 0
GROUP BY
Date
SELECT Date,
-- hits,
SUM(totals.transactions),
SUM(totals.visits)
FROM (
(
SELECT date, totals,
-- create own hits array
ARRAY(
SELECT AS STRUCT
hitnumber,
page,
-- create own product array
ARRAY(
SELECT AS STRUCT productSku, productQuantity
FROM h.product AS p
WHERE (SELECT COUNT(1)=0 FROM p.customDimensions WHERE index=6 AND value like '63%')
) AS product
FROM t.hits as h
WHERE
NOT REGEXP_CONTAINS(page.pagePath,r'gebak|cake')
AND
(SELECT COUNT(1)=0 FROM h.customDimensions WHERE index=23 AND value like '%editor%')
) AS hits
FROM
`[projectID].[DatasetID].ga_sessions_*` t
WHERE
_TABLE_SUFFIX BETWEEN '20181217'
AND '20181217'
AND totals.visits > 0
))
GROUP BY Date
WITH CD6 AS (
SELECT cd.value, SUM(totals.visits) AS Sessions6Sum
FROM
`bigquery-public-data.google_analytics_sample.ga_sessions_*`,
UNNEST(hits) AS hits,
UNNEST(hits.product) AS prod,
UNNEST(prod.customDimensions) AS cd
WHERE cd.index=6
AND NOT REGEXP_CONTAINS(cd.value,r'^63.....$')
GROUP BY cd.value
),
CD23 AS (
SELECT cd.value, SUM(totals.visits) AS Sessions23Sum
FROM
`bigquery-public-data.google_analytics_sample.ga_sessions_*`,
UNNEST(hits) AS hits,
UNNEST(hits.product) AS prod,
UNNEST(prod.customDimensions) AS cd
WHERE cd.index=23
AND NOT REGEXP_CONTAINS(cd.value,r'editor')
GROUP BY cd.value
)
select CD6.Sessions6Sum + CD23.Sessions23Sum from CD6, CD23