Full review (do not merge)

To be honest, I've only been able to created the above on a per-day basis, which is fairly easy and will work with both PostgreSQL, MySQL (and SQLite of course):

    AbrtReport.select("DATE(reported_at) AS reported_date, COUNT(reported_at) as count").group("reported_date")

You need to add a WHERE clause and maybe try to find a way how to do this on per-hour basis...