sql - Redshift Avg 不返回小数
问题描述
我不知道如何在平均计算中返回小数。
我有:
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 将 avg/median 转换为数字,作为小数,但我只是得到四舍五入的数字:
r_i_flag | mr_age_bucket | sum_requests | avg_age_of_mr_days | 中位数_年龄_mr_days |
---|---|---|---|---|
零售 | <7 天 | 29 | 1 | 1 |
零售 | >7 天 | 107 | 46 | 30 |
机构 | <7 天 | 1 | 5 | 5 |
机构 | >7 天 | 13 | 45 | 29 |
我觉得这是一件非常愚蠢的事情,但我无法弄清楚。如何返回非四舍五入的数字?谢谢。
解决方案
问题是传递给 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
推荐阅读
- c++ - 如何交换 C++ 堆栈的元素
- typescript - 如何在 fp-ts 中将一个参数分派给多个函数
- vba - VBA PowerPoint Slides 设置自定义布局以刷新布局
- javascript - 在加载应用程序时在 VUEX 状态下使用 Axios 并在组件中使用 AXIOS
- angular - 如何处理角度 10 中的间隔内存泄漏?
- javascript - Javascript:对齐并行数组索引避免重叠
- javascript - React JS 在生产构建中进行 API 调用
- vba - 我正在尝试单击网页上的一个按钮,该按钮是使用 VBA 的图像
- html - 如何在网站容器的一定宽度内显示固定数量的模板卡片
- c# - WPF - 在 Wrappannel 中显示图像和文本框