本帖最后由 default7 于 2010-09-11 11:52:14 编辑

解决方案 »

  1.   

    select m.*,
           sum(l.notloss) as total_notloss,
           sum(l.mayloss) as total_mayloss,
           sum(l.isloss) as total_isloss,
           (sum(l.notloss)  + sum(l.isloss) + sum(l.mayloss) ) as total_wbuser
           from pt_hourlog m
           left join pt_losslog l on m.`hour`=l.`hour`
           where 1 
           group by m.`hour`
           order by m.`hour` desc
           limit 0 , 30 ;
      

  2.   


    只能这样吗?那不太消耗了啊,因为 total_notloss 这些 total_开头的前面已经统计过一次了,再次使用(sum(l.notloss) + sum(l.isloss) + sum(l.mayloss) ) as total_wbuser 来统计那不太耗费资源了吗?
      

  3.   

    不会的,MYSQL会自动优化处理。
      

  4.   

    select m.hour,
           sum(l.notloss) as total_notloss,
           sum(l.mayloss) as total_mayloss,
           sum(l.isloss) as total_isloss,
           (sum(l.notloss) + sum(l.mayloss)  + sum(l.isloss) ) as total_wbuser
           from pt_hourlog m
           left join pt_losslog l on m.`hour`=l.`hour`
           where 1 
           group by m.`hour`
           order by m.`hour` desc
           limit 0 , 30 ;这个分组后一次性都可以统计完的 不必担心