我不知道如何在平均计算中返回小数。
我有:
select
r_i_flag,
mr_age_bucket,
count(request_id) as sum_requests,
avg(age_of_mr_days) as avg_age_of_mr_days,
median(age_of_mr_days) as median_age_of_mr_days
from
together
group by
1,
2
order by
1 desc,
2
我尝试过将mr_age_bucket转换为数字,尝试过使用to_number将平均值/中值转换为数字、小数,但我只是得到了四舍五入的数字:
r_i_flag | mr_age_bucket | sum_requestsavg_age_of_mr_days | median_age_of_mr_days | |
---|---|---|---|---|
零售 | <7天 | 29 | 1 | <1>|
零售 | >7天 | 107 | 46 | 30 |
机构 | <7天 | |||
机构 | >7天 |
问题是传递给AVG的数据类型,只需将其除以1.0即可。铸造到DOUBLE PRECISION
或REAL
也将工作
select
r_i_flag,
mr_age_bucket,
count(request_id) as sum_requests,
avg(age_of_mr_days / 1.0) as avg_age_of_mr_days,
avg(age_of_mr_days::double precision),
avg(age_of_mr_days::real),
median(age_of_mr_days) as median_age_of_mr_days
from
together
group by
1,
2
order by
1 desc,
2