Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Google BigQuery clientid和fullvisitorid在计算时并不完全相同。有人知道为什么吗?_Sql_Google Bigquery - Fatal编程技术网

Sql Google BigQuery 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

我们认为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 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。

示例数据和所需结果将非常有用。示例数据和所需结果将非常有用。