我感觉自己错过了一些显而易见的东西。我正在尝试测试random()
分布。以下是表格:
create table test (
id int,
random_float float,
random_int int
);
我想做的事情是:
truncate table test;
insert into test (id)
values (generate_series(1,1000));
update test
set
random_float = random() * 10 + 1;
update test
set
random_int = trunc(random_float);
select
random_int,
count(random_int) as Count,
cast( count(random_int) / max(id) as float) as Percent
from test
group by random_int
order by random_int;
然而,“百分比”列对于每一条记录都返回零。我试过将其转换为浮点数,作为十进制数,我尝试将random_int
列更改为十进制数而不是整数,结果总是相同的。
请问我做错了什么?
select 1/2
。返回值为0。 - usrselect 1/2, 1.0/2, 1.0*1/2, 1::numeric/2, cast(1 as float)/2;
- vyegorov