我试图在postgresql中创建一个带有百分比的频率表
如果有人熟悉sas,我正在尝试重新创建一个proc频率表
下面我试着通过var1,var2得到一组的频率
var1 var2 frequency percentage
A 20 1 33%
A 30 1 33%
A 40 1 33%
B 20 4 80%
B 30 1 20%
现在这很简单,只要
select var1
,var2
,count(*)
from table
group by 1,2
更棘手的是,我尝试添加一个百分比列,该列基于var1分布执行百分比
select var1
,var2
,count(*)
,count(*)/count(*) over(partition by var1)
from table
group by 1,2
我用上面的代码得到了一个错误的答案
1条答案
按热度按时间pieyvz9o1#
你想和
count(*)
价值观。所以:您的代码只计算每一行的行数
var
在聚合之后。因此,它实际上返回的是加权平均值——一些可能有用但不是你想要的东西。