create PROCEDURE  pro_test  @clusterid int,@trainid int
as
insert into  trainresult 
select @clusterid,count(*),1.0*sum(case when churnflag=0 then 1 else 0 end)/count(*)
from traindata where clusterid =@clusterid and trainid=@trainid

解决方案 »

  1.   

    insert into  trainresult (trainid,clusterid,customernum,churnrate)  (select trainid,clusterid,count(customerid),sum(case churnflag when 0 then 1 else 0 end))/count(customerid) from traindata group by trainid, clusterid)
      

  2.   

    create PROCEDURE  pro_test  @clusterid int, @trainid int
    as
    insert into  trainresult 
    select @clusterid, count(clusterid), 1 - sum(cast(churnflag as int))/count(clusterid)
    from traindata where clusterid =@clusterid and trainid=@trainid
      

  3.   

    to tj_dns(愉快的登山者),
    你这个1 - sum(cast(churnflag as int))会不会有问题?