Sql Google BigQuery clientid和fullvisitorid在计算时并不完全相同。有人知道为什么吗?
我们认为clientid和fullvisitorid是一一对应的。但是,下面的查询显示了其他情况Sql Google BigQuery clientid和fullvisitorid在计算时并不完全相同。有人知道为什么吗?,sql,google-bigquery,Sql,Google Bigquery,我们认为clientid和fullvisitorid是一一对应的。但是,下面的查询显示了其他情况 select count(*) ct_byfullvisitorid --121409 from ( Select distinct fullvisitorid FROM `project.datasouce.ga_sessions_20180705` ) select count(*) ct_byclientid --121397 from ( Select distinct clie
select count(*) ct_byfullvisitorid --121409
from
( Select distinct fullvisitorid
FROM `project.datasouce.ga_sessions_20180705`
)
select count(*) ct_byclientid --121397
from
( Select distinct clientid
FROM `project.datasouce.ga_sessions_20180705`
)
我们期望这两个查询返回完全相同的值,但事实并非如此。因此,我们认为可以使用下面的查询来列出导致差异的clientid
select *
from
(
Select clientid, fullvisitorid
FROM `project.datasouce.ga_sessions_20180705`
) as a
where exists
(
Select *
FROM `project.datasouce.ga_sessions_20180705` s2
where a.clientid = s2.clientid and a.fullvisitorid != s2.fullvisitorid
)
我们又错了——这个SQL语句返回了零记录
有人遇到过同样的问题吗?有人能解释一下情况吗
谢谢 您可以这样做:
select fullvisitorid, count(distinct clientid) as numclients
from project.datasouce.ga_sessions_20180705
group by fullvisitorid
having count(distinct clientid) <> 1;
选择fullvisitorid,将(不同的clientid)计数为numclient
来自project.datasouce.ga_sessions_20180705
按fullvisitorid分组
具有计数(不同客户ID)1;
及
选择clientid,将(不同的fullvisitorid)计数为numvisitors
来自project.datasouce.ga_sessions_20180705
按客户分组
具有计数(不同的fullvisitorid)1;
您可以执行以下操作:
select fullvisitorid, count(distinct clientid) as numclients
from project.datasouce.ga_sessions_20180705
group by fullvisitorid
having count(distinct clientid) <> 1;
选择fullvisitorid,将(不同的clientid)计数为numclient
来自project.datasouce.ga_sessions_20180705
按fullvisitorid分组
具有计数(不同客户ID)1;
及
选择clientid,将(不同的fullvisitorid)计数为numvisitors
来自project.datasouce.ga_sessions_20180705
按客户分组
具有计数(不同的fullvisitorid)1;
原来clientID可以为null。这完全出乎意料。感谢Gordon提供的SQL。结果证明clientID可以为空。这完全出乎意料。感谢Gordon提供的SQL。示例数据和所需结果将非常有用。示例数据和所需结果将非常有用。