我正在尝试使用Postgresql中的百分比创建频率表
如果有人熟悉SAS,我将尝试重新创建proc频率表
下面我试图通过var1,var2上的一组来获取频率
foo:
bar:
- " One."
- " Two."
- " Three"
现在,这很容易
var1 var2 frequency percentage
A 20 1 33%
A 30 1 33%
A 40 1 33%
B 20 4 80%
B 30 1 20%
棘手的是我尝试添加一个基于var1分布执行百分比的百分比列
select var1
,var2
,count(*)
from table
group by 1,2
我对上面的代码给出了错误的答案
答案 0 :(得分:1)
您要求和 count(*)
值。所以:
select var1, var2, count(*),
count(*) * 1.0 / sum(count(*)) over (partition by var1)
from table
group by 1, 2;
您的代码只计算聚合后每个var
的行数。因此,它实际上是在返回加权平均值-可能有用但不是您想要的。