0
我修复了最后一个问题,但现在有其他lil位:我edt我的查询以这种格式。但是,我仍然有一个大问题 - PU_1天& PU_7day计算不正确:在每行中增加“1”(true时为3,当true为1时为1)。我如何解决这个问题? :(Mysql错误的计算
SELECT u.date,
u.des_channel,
u.des_type,
u.country,
count(distinct(u.id)) as Reg_n,
sum(if((u.date=bp.date)*(u.id=bp.user_id),bp.o_outcome,0)) as P_$,
sum(if((u.date=bp.date)*(u.id=bp.user_id),1,0)) as P_n,
count(distinct(if((u.date=bp.date)*(u.id=bp.user_id),bp.user_id,0))) as PU_1day,
count(distinct(if(truncate(timestampdiff(hour,u.datetime,bp.datetime)/24,0)<7,bp.user_id,0))) as PU_7day
FROM mayadata.users u
left join mayadata.billing_pays bp
on u.id=bp.user_id
WHERE u.country in ('TH','ZA','ID','IN','NG','MY') and
truncate(timestampdiff(hour,u.datetime,bp.datetime)/24,0)<7 and
u.date>='2011-01-01'
GROUP BY u.date, u.des_channel, u.des_type
减去一个我的意思.. 。它会计算'0'的值作为一个独特的值,你也可以尝试用'NULL'来切换你的'0',看看是否有帮助,我不记得MySQL是否将NULL计数为一个不同的值。我知道在其他RDBMS中,NULL不被视为“DISTINCT”计数。 – JNevill
根据JNevill ... COUNT()将不包含NULL。你可以COUNT(IF(无论,1,NULL))... – wally
哦,这些家伙,听起来很不错,希望它的作品! –