https://www.sqlite.org/lang_datefunc.html
Используя stftime извлекаешь отдельно год, месяц, день и час. Часы группируешь по 3 штуки. Как это сделать — тебе виднее. Например, поделить час нацело на 3 (что sqlite и делает по умолчанию с двумя целыми числами). Остаётся сделать запрос вида
SELECT
strftime('%Y', timestamp) as year,
strftime('%m', timestamp) as month,
strftime('%d', timestamp) as day,
strftime('%H', timestamp) / 3 as grouped_hour,
author,
COUNT(*)
FROM table
GROUP BY year, month, day, grouped_hour, author
P.S. отсчёт в grouped_hour начинается с 0. 0 соответствует интервалу 00:00:00 – 02:59:59, 1 — 03:00:00 – 05:59:59 и т.д.