SQL Count Distinct返回一个额外计数
这两种方法返回不同结果的可能性是什么 方法1返回正确的计数:SQL Count Distinct返回一个额外计数,sql,Sql,这两种方法返回不同结果的可能性是什么 方法1返回正确的计数: SELECT COUNT(DISTINCT contact_id) FROM Traffic_Action WHERE action_type IN ('Schedule a Tour', 'Schedule Follow-up', 'Lost') 方法2返回一个额外的计数: SELECT COUNT(DISTINCT CASE WHEN action_type IN ('Schedule a Tour', 'Schedule F
SELECT COUNT(DISTINCT contact_id)
FROM Traffic_Action
WHERE action_type IN ('Schedule a Tour', 'Schedule Follow-up', 'Lost')
方法2返回一个额外的计数:
SELECT COUNT(DISTINCT CASE WHEN action_type IN ('Schedule a Tour', 'Schedule Follow-up', 'Lost') THEN contact_id ELSE 0 END)
FROM Traffic_Action
删除else部分-因为0也被计算在内
SELECT COUNT(DISTINCT CASE WHEN
action_type in ('Schedule a Tour','Schedule Follow-up','Lost') THEN contact_id END)
FROM Traffic_Action
删除else部分-因为0也被计算在内
SELECT COUNT(DISTINCT CASE WHEN
action_type in ('Schedule a Tour','Schedule Follow-up','Lost') THEN contact_id END)
FROM Traffic_Action
难怪你会得到两个不同的结果 第一个问题: 为您提供操作\在计划巡更、计划跟进和丢失中键入的记录的不同计数 第二个问题: 在该查询中,除Schedule a Tour、Schedule Follow up和Lost之外的任何值都被视为0,并且在获取不同的值时,将根据您的案例语句生成一行
SELECT COUNT(DISTINCT CASE WHEN action_type in ('Schedule a Tour','Schedule Follow-
up','Lost') THEN contact_id ELSE 0 END) FROM Traffic_Action
简言之
在第一个查询中,只过滤三个值
在第二个查询中,您没有过滤器,但三个值上的case语句和else条件为非匹配条件返回0,难怪您会得到两个不同的结果 第一个问题: 为您提供操作\在计划巡更、计划跟进和丢失中键入的记录的不同计数 第二个问题: 在该查询中,除Schedule a Tour、Schedule Follow up和Lost之外的任何值都被视为0,并且在获取不同的值时,将根据您的案例语句生成一行
SELECT COUNT(DISTINCT CASE WHEN action_type in ('Schedule a Tour','Schedule Follow-
up','Lost') THEN contact_id ELSE 0 END) FROM Traffic_Action
简言之
在第一个查询中,只过滤三个值
在第二个查询中,您没有筛选器,但三个值上的case语句和else条件为非匹配条件返回0,这意味着您有一条联系人id为NULL的记录。通常,COUNT忽略空值。第二个查询通过ELSE分支将NULL转换为零。这就是为什么你会看到不同 在本例中,您可以很快看到自己的情况。这将返回2,尽管有3条记录
select count(distinct a.col1)
from (
select 1 as Col1
union select 2
union select NULL
) a
这意味着您有一条联系人id为空的记录。通常,COUNT忽略空值。第二个查询通过ELSE分支将NULL转换为零。这就是为什么你会看到不同 在本例中,您可以很快看到自己的情况。这将返回2,尽管有3条记录
select count(distinct a.col1)
from (
select 1 as Col1
union select 2
union select NULL
) a
在标准SQL中,您还可以在操作输入的位置编写countdistinct contact\u id筛选器…在标准SQL中,您还可以在操作输入的位置编写countdistinct contact\u id筛选器…感谢您的解释!谢谢你的解释!