postgresql7.1 select to_char(current_timestamp,'HH24') + (interval '24 hours' - (interval '$end_time hours' - interval '$current_hour hours')) and (timestamp + interval '$n_days days' $hour_correction) > current_timestamp select pid, command, username, count(*) as count, $hour_sql as timestamp, round(avg(threads)) as threads, round(avg(to_number(rtrim(cpu_pct, '%'), '9999D99')), 2) as cpu_pct from ( select * from ad_monitoring_top $time_clause ) t, ( select * from ad_monitoring_top_proc where to_number(rtrim(cpu_pct, '%'), '9999D99') > :min_cpu_pct ) p where p.top_id = t.top_id group by pid, command, username, $hour_sql [ad_order_by_from_sort_spec $orderby $top_proc_avg_table_def] round(coalesce(avg(load_avg_1), 0), 2) as load_average, round(coalesce(avg(memory_free),0), -2) as memory_free_average, round(coalesce(avg(memory_swap_free), 0), -2) as memory_swap_free_average, round(coalesce(avg(memory_swap_in_use),0), -2) as memory_swap_in_use_average select max(timestamp) - min(timestamp) + '12 hours'::interval from ad_monitoring_top $time_clause