I am getting some really strange query output. I am trying to average an
interval. The problem is that the interval average is sometimes
returning more than 24 hours for the average.
query:
select avg(scan_date - backflush_date) as time_diff,
substring(pt_article, 1, 5) as clan, sum(qty) as units
from carton_master
join outbound on master_number = master_id
join pt_mstr on product = pt_part where
scan_date::date between '2006-06-01'::date and '2006-07-01'::date
and substring(pt_article, 1, 5) = '*2420'
group by clan
output:
4 days 33:48:13.994333 *2420 25
however if i don't average them here is what i get:
query:
select (scan_date - backflush_date) as time_diff,
substring(pt_article, 1, 5) as clan
from carton_master
join outbound on master_number = master_id
join pt_mstr on product = pt_part where
scan_date::date between '2006-06-01'::date and '2006-07-01'::date
and substring(pt_article, 1, 5) = '*2420'
output:
"7 days 22:24:50.62311";"*2420"
"9 days 22:21:02.683393";"*2420"
"23:21:35.458459";"*2420"
"4 days 22:47:41.749756";"*2420"
"3 days 06:05:59.456947";"*2420"
which should average to just over nine days -
Assuming I am not missing something huge here. I tend to think its a bug
in avg(interval) postgres function.
I am running postgres 8.1.3 on 32bit suse
Thanks
Jeremiah Elliott