Предполагая, что sentdate является полем даты / времени, это должно работать:
SELECT COUNT(*),
date_part('hour', sentdate ) AS hour
FROM latency l,
contacts me
WHERE l.lat < 1
AND date_trunc ('day', sentdate) > DATE ( '2009-01-01' )
AND date_trunc ('day', sentdate) < DATE ( '2011-02-01' )
AND ( me.id = l.replyuid
OR me.id = l.senduid )
GROUP BY date_part('hour', sentdate )
ORDER BY hour ASC;