Redshift Avg 不返回小数

Redshift Avg not returning decimals

我不知道如何在平均值计算中 return 小数。

我有:

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

我试过使用 to_number 将 mr_age_bucket 转换为数字,尝试将 avg/median 转换为数字,小数,但我得到的只是四舍五入的数字:

r_i_flag mr_age_bucket sum_requests avg_age_of_mr_days median_age_of_mr_days
零售业 <7 天 29 1 1
零售业 >7 天 107 46 30
机构 <7 天 1 5 5
机构 >7 天 13 45 29

我觉得这是一件非常愚蠢的事情,但我想不通。我如何 return 一个非四舍五入的数字?谢谢

问题是传递给 AVG 的数据类型,只需将其除以 1.0 即可。投射到 DOUBLE PRECISIONREAL 也可以

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