SELECT concat(date(alltable.t_stamp), ' ', hour(alltable.t_stamp), ':00') as StartTimestamp, concat('H',TIMESTAMPDIFF(HOUR,DATE_FORMAT(alltable.t_stamp,"%Y-%m-%d %H:00:00"),DATE_FORMAT(now(),"%Y-%m-%d %H:00:00"))) as Hour, COUNT(*) AS Inducted, SUM(alltable.ACTUAL_DEST <> 'S03999') AS Sorted, SUM(alltable.DivertStatus = 7) AS DestinationInvalid, SUM(alltable.DivertStatus = 16) AS DestinationNone, SUM(alltable.DivertStatus = 12) AS DestinationDisabled, SUM(alltable.DivertStatus = 5) AS DestinationFull, SUM(alltable.DivertStatus = 2) AS Unexpected, SUM(alltable.DivertStatus = 6) AS DestinationFault, SUM(alltable.DivertStatus = 14) AS DivertFail, SUM(alltable.DivertStatus = 4) AS GapError, SUM(alltable.DivertStatus = 17) AS Lost, SUM(alltable.DivertStatus = 3) AS TrackingError, SUM(alltable.DivertStatus = 1) AS Unknown, SUM(alltable.DivertStatus = 21) AS Unsafe FROM alltable Where (alltable.t_stamp BETWEEN :starttime AND :endtime) GROUP BY hour(alltable.t_stamp)