前一天的新注册用户总数、已完成邮箱认证的总数、未完成邮箱认证的总数、当日激活成功率。表结构:uid,         用户id
reg_mail,     注册邮箱   
sign,         标识符(1发送了邮件,2验证成功)
reg_date      注册时间——————————————————一条sql能搞定吗?

解决方案 »

  1.   

    select 注册用户总数=count(reg_mail),
           已认证总数=sum(case when sign=2 then 1 else 0 end),
           未认证总数=count(reg_mail)-sum(case when sign=2 then 1 else 0 end),
           激活成功率=sum(case when sign=2 then 1 else 0 end)*1.0/count(reg_mail)
    from 表
    where datediff(dd,reg_date,getdate())=-1
      

  2.   

    select 
    新注册用户总数=count(*),
    已完成邮箱认证的总数=sum(case when sign=2 then 1 else 0 end),
    未完成邮箱认证的总数=sum(case when sign!=2 then 1 else 0 end),
    当日激活成功率=sum(....)  ---这个上面条件自己加
    from tb
    where datediff(day,reg_date,getdate())=1