Big Query - 使用旧版和普通版时用户数量不同 sql
Big Query - different number of users when using legacy and normal sql
我在 Google Big Query 中编写了一个查询,并希望获得与在 Google Analytics 中看到的相同数量的用户。我使用了 Legacy 和 Normal SQL 并在会话相同的情况下获得了 3 个不同的用户编号。我做错了什么,或者有人有 explanation/solution 吗?感谢您的帮助!
正常SQL
SELECT COUNT(DISTINCT fullVisitorId) AS users, SUM(IF(totals.visits IS
NULL,0,totals.visits)) AS sessions
FROM `XXX.XXX.ga_sessions_*`
WHERE _TABLE_SUFFIX BETWEEN '20181120' AND '20181120'
旧版 SQL
SELECT COUNT(DISTINCT fullVisitorId) AS users, SUM(IF(totals.visits IS
NULL,0,totals.visits)) AS sessions
FROM TABLE_DATE_RANGE([XXX:XXX.ga_sessions_], TIMESTAMP('2018-11-20'),
TIMESTAMP('2018-11-20'))
我认为来自 documentation 的这条警告解释了正在发生的事情:
In legacy SQL, COUNT(DISTINCT x) returns an approximate count. In standard SQL, it returns an exact count.
标准SQL 有正确的数字。您可以通过尝试在遗留 SQL.
中使用 EXACT_COUNT_DISTINCT()
来对此进行测试
我在 Google Big Query 中编写了一个查询,并希望获得与在 Google Analytics 中看到的相同数量的用户。我使用了 Legacy 和 Normal SQL 并在会话相同的情况下获得了 3 个不同的用户编号。我做错了什么,或者有人有 explanation/solution 吗?感谢您的帮助!
正常SQL
SELECT COUNT(DISTINCT fullVisitorId) AS users, SUM(IF(totals.visits IS
NULL,0,totals.visits)) AS sessions
FROM `XXX.XXX.ga_sessions_*`
WHERE _TABLE_SUFFIX BETWEEN '20181120' AND '20181120'
旧版 SQL
SELECT COUNT(DISTINCT fullVisitorId) AS users, SUM(IF(totals.visits IS
NULL,0,totals.visits)) AS sessions
FROM TABLE_DATE_RANGE([XXX:XXX.ga_sessions_], TIMESTAMP('2018-11-20'),
TIMESTAMP('2018-11-20'))
我认为来自 documentation 的这条警告解释了正在发生的事情:
In legacy SQL, COUNT(DISTINCT x) returns an approximate count. In standard SQL, it returns an exact count.
标准SQL 有正确的数字。您可以通过尝试在遗留 SQL.
中使用EXACT_COUNT_DISTINCT()
来对此进行测试