我似乎无法获得一个查询,该查询为我提供了所有会话,其中customdimensionX具有值X,而customdimensionY在同一匹配中具有值Y.我目前的查询结果未找到任何结果。
任何人都可以帮我这个:)? 谢谢!
SELECT sum(totals.visits)
from TABLE_DATE_RANGE([xxxx.ga_sessions_], TIMESTAMP('2016-3-1'),TIMESTAMP('2016-3-1'))
WHERE
(hits.customDimensions.index=x AND hits.customDimensions.value='x')
AND (hits.customDimensions.index=y AND hits.customDimensions.value='y')
答案 0 :(得分:4)
回答我自己的问题有点奇怪,但对其他人可能有用:)我通过以下方式得到了正确的号码:
SELECT EXACT_COUNT_DISTINCT(uniqueVisitId) as sessions
FROM(
SELECT
CONCAT(fullvisitorid,"_",string(visitId)) AS uniqueVisitId,
MAX(IF(hits.customDimensions.index=x,hits.customDimensions.value,NULL)) WITHIN hits AS x,
MAX(IF(hits.customDimensions.index=y,hits.customDimensions.value,NULL)) WITHIN hits AS y,
hits.hitNumber
FROM TABLE_DATE_RANGE([xxxxxx.ga_sessions_], TIMESTAMP('2016-3-1'),TIMESTAMP('2016-3-1'))
having
(x contains 'x' and y contains 'y')
)
答案 1 :(得分:2)
尝试以下选项(没有机会进行测试,但应该接近你需要的,如果不是确切的话):
SELECT SUM(totals.visits)
FROM TABLE_DATE_RANGE([66080915.ga_sessions_], TIMESTAMP('2016-3-1'),TIMESTAMP('2016-3-1'))
OMIT RECORD IF
SUM((hits.customDimensions.index=x AND hits.customDimensions.value='x')
OR (hits.customDimensions.index=y AND hits.customDimensions.value='y')
) != 2
SELECT SUM(totals.visits) FROM (
SELECT totals.visits,
SUM((hits.customDimensions.index=x AND hits.customDimensions.value='x')
OR (hits.customDimensions.index=y AND hits.customDimensions.value='y')
) WITHIN RECORD AS check,
FROM TABLE_DATE_RANGE([66080915.ga_sessions_], TIMESTAMP('2016-3-1'),TIMESTAMP('2016-3-1'))
HAVING check = 2
)
ADDED
如果customDimensions按特定匹配(如hits.hit.customVariables)分组 - 您可以使用
确定同一命中内的两个条件
WITHIN hits.hit
或OMIT hits.hit IF
分别对
WITHIN RECORD
或OMIT RECORD IF
但是我已经检查了BigQuery Export schema,但似乎并非如此 我没有办法区分每个特定命中的尺寸。 自定义维度按级别 - 用户/会话级别,产品级别和命中级别显示。 每个产品只能识别/查询产品级自定义维度。
希望这有帮助