diff --git a/app/models/status.rb b/app/models/status.rb
index bdd45d9..8733def 100644
@@ -25,10 +25,10 @@ class Status
sql = <<-SQL
SELECT
- COUNT(*) - SUM(success) as failed,
+ COUNT(*) - COUNT(success) as failed,
COUNT(*) as total,
- SUM(success) / COUNT(*) * 100 as percent,
- FROM_UNIXTIME(FLOOR(UNIX_TIMESTAMP(time) / #{interval}) * #{interval}) as start
+ COUNT(success) / COUNT(*) * 100 as percent,
+ (FLOOR(time::abstime::integer / #{interval}) * #{interval})::integer::abstime as start
FROM reports
SQL
@@ -36,7 +36,7 @@ class Status
sql << " time >= \"#{options[:start].to_s(:db)}\"}" if options[:start]
sql << " AND" if options[:start] and options[:node]
sql << " node_id = #{options[:node].id}" if options[:node]
- sql << " GROUP BY FLOOR(UNIX_TIMESTAMP(time) / #{interval})"
+ sql << " GROUP BY FLOOR(time::abstime::integer / #{interval})"
sql << " LIMIT #{options[:limit]}" if options[:limit]