SELECT roundtime, Inbound_jam, Sorter_jam FROM ( SELECT FROM_UNIXTIME(CEIL(UNIX_TIMESTAMP(a.eventtime) / 600) * 600) AS roundtime, SUM(a.category = 'Inbound_jam') AS Inbound_jam, SUM(a.category = 'Sorter_jam') AS Sorter_jam FROM ( SELECT ae.eventtime, m.category FROM alarm_events ae JOIN ( -- Inbound devices SELECT 'UL15_1_TPE1' AS device, 'Inbound_jam' AS category UNION ALL SELECT 'UL14_1_TPE1', 'Inbound_jam' UNION ALL SELECT 'PS3_1_TPE1', 'Inbound_jam' UNION ALL SELECT 'PS3_1_TPE2', 'Inbound_jam' UNION ALL SELECT 'PS3_1_TPE3', 'Inbound_jam' UNION ALL SELECT 'PS3_2_TPE1', 'Inbound_jam' UNION ALL SELECT 'PS3_4_TPE1', 'Inbound_jam' UNION ALL SELECT 'PS3_8_TPE1', 'Inbound_jam' UNION ALL SELECT 'PS3_10_TPE1', 'Inbound_jam' UNION ALL -- Sorter devices SELECT 'PS3_12_TPE1', 'Sorter_jam' ) AS m ON ae.displaypath = m.device WHERE ae.eventtype = 0 AND ae.eventtime BETWEEN :starttime AND :endtime AND ae.displaypath NOT LIKE '%System Startup%' AND ae.source NOT LIKE '%System Startup%' ) AS a GROUP BY FROM_UNIXTIME(CEIL(UNIX_TIMESTAMP(a.eventtime) / 600) * 600) ORDER BY roundtime ASC ) AS okeyjam;