[英]Postgresql frequency table with percentage partition over and group by
我正在嘗試在 Postgresql 中創建一個帶有百分比的頻率表
如果有人熟悉 SAS 我正在嘗試重新創建一個 proc 頻率表
下面我試圖在 var1,var2 上通過 group by 獲取頻率
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
我對上面的代碼得到了錯誤的答案
您想對count(*)
值求和。 所以:
select var1, var2, count(*),
count(*) * 1.0 / sum(count(*)) over (partition by var1)
from table
group by 1, 2;
您的代碼只計算聚合后每個var
的行數。 因此,它實際上是返回加權平均值——這可能有用但不是你想要的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.