BigQuery 中查询的采样问题(标准 SQL)

Sampling issue with query in BigQuery (Standard SQL)

我一直在运行查询以下格式

SELECT b.date as Date,COUNT(DISTINCT user_id) AS NewUsers FROM (
SELECT user_id,MIN(date) as min_date
FROM tableA
WHERE date >= '2018-10-10'
AND filter1 = "XYZ"
GROUP BY ) a
CROSS JOIN (
SELECT date FROM tableB
WHERE date >= '2018-10-19' AND date <= CURRENT_DATE()
GROUP BY 1) b
WHERE a.date >= DATE_SUB(b.date, INTERVAL 6 DAY) AND a.date <= b.date
GROUP BY 1

假设以上是result1

SELECT b.date as Date,COUNT(DISTINCT user_id) AS NewUsers FROM (
SELECT user_id,MIN(date) as min_date
FROM tableA
WHERE date >= '2018-07-10'
AND filter1 = "XYZ"
GROUP BY ) a
CROSS JOIN (
SELECT date FROM tableB
WHERE date >= '2018-07-19' AND date <= CURRENT_DATE()
GROUP BY 1) b
WHERE a.date >= DATE_SUB(b.date, INTERVAL 6 DAY) AND a.date <= b.date
GROUP BY 1

以上是result2

此处2018-07-19为发布日期

因为我有 2018-10-19 之前的数据,我想 运行 从以后的日期开始查询,以优化成本和数据消耗查询....但不知为何,我得到的数据不正确。

但是,如果我 运行 从发布日期开始执行相同的查询,我会得到正确的结果。

我的意思是相应日期(如日期 >= 2018-10-19)的 NewUsers from result1NewUsers from result2 多。

不确定,我遗漏了什么。

如有任何帮助,我们将不胜感激。

谢谢

我认为 - 这是因为使用了 'MIN(date)' - 你看到计数发生了变化,因为你限制了日期,所以那些在较早日期首次出现的用户 - 现在那些相同的 "old" 用户是最近几天计数 - 因此混乱