Select roundtime,Total_count,GoodRead_count,NoRead_count,MultiRead_count,NoCode_count, Total_count/Total_count as Total_perc, GoodRead_count/Total_count as GoodRead_perc, NoRead_count/Total_count as NoRead_perc, MultiRead_count/Total_count as MultiLabelRead_perc, NoCode_count/Total_count as NoCode_perc, Total_count*3600/TIMESTAMPDIFF(second, :starttime, :endtime) as Total_rate, GoodRead_count*3600/TIMESTAMPDIFF(second, :starttime, :endtime) as GoodRead_rate, NoRead_count*3600/TIMESTAMPDIFF(second, :starttime, :endtime) as NoRead_rate, MultiRead_count*3600/TIMESTAMPDIFF(second, :starttime, :endtime) as MultiLabelRead_rate, NoCode_count*3600/TIMESTAMPDIFF(second, :starttime, :endtime) as NoCode_rate FROM (Select alltable.t_stamp AS t_stamp, COUNT(*) AS Total_count, SUM(SUBSTRING(alltable.ScanLabel,1,1) <> '?' AND SUBSTRING(alltable.ScanLabel,1,1) <> '9' AND SUBSTRING(alltable.ScanLabel,1,1) <> '0') AS GoodRead_count, SUM(SUBSTRING(alltable.ScanLabel,1,1) = '?') AS NoRead_count, SUM(SUBSTRING(alltable.ScanLabel,1,1) = '9') AS MultiRead_count, SUM(SUBSTRING(alltable.ScanLabel,1,1) = '0') AS NoCode_count, FROM_UNIXTIME(CEIL(UNIX_TIMESTAMP(alltable.t_stamp) / 60) * 60) roundtime FROM alltable Where (alltable.t_stamp BETWEEN :starttime AND :endtime) and ('S03aa' = :Scanner) Group BY FROM_UNIXTIME(CEIL(UNIX_TIMESTAMP(alltable.t_stamp) / 60) * 60) Order By alltable.t_stamp ASC ) okey