我有两个查询:
select COUNT(DISTINCT (CASE WHEN EVENT_NAME = 'event' THEN UPPER(user END)) AS SIGNUP_COUNT,
from table
WHERE date BETWEEN '2020-07-01' AND '2020-09-01'
和
with EVENTS_FILTERED_with_count as (
select *
, COUNT(DISTINCT (CASE WHEN EVENT_NAME = 'event' THEN UPPER(user END)) AS SIGNUP_COUNT
from table
group by 1)
SELECT sum(SIGNUP_COUNT) FROM EVENTS_FILTERED_with_count
WHERE date BETWEEN '2020-07-01' AND '2020-09-01'
第一个查询返回2.5K行作为结果,第二个查询返回3K行。
为什么通过添加组会使结果更大?我想知道这是否与NULL值有关。
因为同一个user
有多个事件,所以在用户级别计数时会对该事件进行多次计数。
如果没有样本数据,很难更具描述性。