我正在尝试计算具有一个特定页面路径的会话数量,作为会话中的至少一个命中(" my-path")。我需要确保它不匹配例如" my-path-2"但匹配" my-path / something",所以我使用以下表达式:
NTH(1,SPLIT(NTH(1,SPLIT(hits.page.pagePath,'/')),'?'))
然而,完整的查询会产生不正确的结果,如下所示:
SELECT
date,
hostname,
pagePath,
EXACT_COUNT_DISTINCT(id) AS sumVisits
FROM (
SELECT
date,
hits.page.hostname AS hostname,
id,
pagePath
FROM (
SELECT
(NTH(1,SPLIT(NTH(1,SPLIT(hits.page.pagePath,'/')),'?'))) WITHIN RECORD AS pagePath,
date,
hits.page.hostname,
hits.type,
CONCAT(fullVisitorId, STRING(visitId)) AS id
FROM [my-table]
HAVING
pagePath ="my-path" ) )
GROUP BY
date,
pagePath,
hostname
我做错了什么?此查询使用CONTAINS(选择太多)但不使用NTH和SPLIT函数。
答案 0 :(得分:1)
你有没有尝试过:
dispatch_group_leave
有时保存的路径以“/”开头为“/ my-path / p / a”而不是“my-path / p / a”;在这种情况下,当你从“分裂”而不是第二个元素中取出第一个元素时;查询将返回一个空字符串。