我生成了以下结果集
"degree_easy","degree_hard","easy_percent","hard_percent"
1,5,0.166667,0.833333
1,5,0.166667,0.833333
1,6,0.142857,0.857143
1,8,0.111111,0.888889
以上结果集是从以下查询生成的:
select * from (
select degree_one as degree_easy,
(degree_two + degree_three) as degree_hard,
(degree_one::real/(degree_one::real + degree_two::real + degree_three::real))
as easy_percent,
((degree_two::real + degree_three::real)/(degree_one::real + degree_two::real +
degree_three::real)) as hard_percent FROM recommendation_degree
) as dc
where dc.degree_easy >= 1 and dc.degree_hard >= 1
order by dc.easy_percent ASC, dc.hard_percent ASC
现在我要做的是计算百分位数:
我不确定上面的哪一列更有意义,但假设我想使用 degree_easy 和 degree_hard 来计算百分位数或至少其中一个 如何ntile
在 postgres 中使用函数来做到这一点?
执行以下操作的最佳做法是什么:
percentile, number_of_users
25, 4
50, 10
75, 20
99, 20