Look at SUM()
+ TIMESTAMPDIFF()
functions:
SELECT
`worker_id`, SUM(TIMESTAMPDIFF(HOUR, `start`, `end`)) as `total`
FROM
`table`
WHERE
(`start` BETWEEN 'period-start-date' AND 'period-end-date')
AND
(`end` BETWEEN 'period-start-date' AND 'period-end-date')
GROUP BY
`worker_id`;
Consider adding WHERE
clause with constraining dates.