desc tb_pushlog_20151201; id int(10) NO PRI auto_increment imei varchar(40) NO MUL imsi varchar(25) NO pushtime datetime NO 0000-00-00 00:00:00 ruleid int(11) YES MUL 0 channelid int(11) YES 0 cityid int(11) YES 0 nexttime int(11) YES 0 retention int(11) YES 0 url varchar(200) YES backupurl varchar(200) YES type char(1) YES resultnum int(2) YES MUL 99 resultstr varchar(400) YES
表tb_pushlog_20151201是统计一天内对用户push广告的情况:
select count(DISTINCT imei) from tb_pushlog_20151201 where ruleid = 510 ;-- 457205 select sum(v.sums) from (select count(DISTINCT imei) as sums from tb_pushlog_20151201 where ruleid = 510 group by channelid ) as v; -- 669319 select sum(v.sums) from (select count(DISTINCT imei) as sums from tb_pushlog_20151201 where ruleid = 510 group by cityid ) as v; -- < 669319
第一条sql语句查询广告词为510的去重imei之后的用户数为457205条记录v1。
第二条sql语句,根据渠道号进行分组,同样是查询广告词为510 去重imei之后的用户数 669319条记录v2。
第三条sql语句,根据国家进行分组,同样是查询广告词为510 去重imei之后的用户数v3。ffffffff-8831-1ffd-f323-b97d1c49c871 100051 china
ffffffff-8831-1ffd-f323-b97d1c49c871 100021 china
ffffffff-8831-1ffd-f323-b97d1c49c871 100256 china
ffffffff-8831-1ffd-f323-b97d1c49c871 100256 en
这样的结果是非常有可能的(根据实际查询结果),因此第1种情况,这4条记录只算1条记录,第2种情况对channelid分组,查询出来的有4条记录,第3种情况对国家分组,查询出来的是2条记录。