我希望使用百分位排名使用多个指标对一些记录(ASX股票)进行排名。我使用以下网站来计算百分等级,这对我来说很好。
http://www.sqlservercentral.com/articles/PERCENT_RANK/141532/
比方说,例如,我想按最高收益,最低债务与股本比率对它们进行排名(我的排名可能超过5个指标)。假设我希望最高收益具有更高的重要性,比如20%
我是否需要单独计算每个/公制的百分位数排名,然后将两个百分比结合起来并应用20%因子?
所以例如: ABC 收益百分位数:90%(最高收入者之一) 债务百分位数:10%(债务水平高)
然后将90%与10%相结合以获得整体排名?
; WITH CTE
AS
(
select
e.SecurityCode,
e.Earning,
e.TotalDebtToEquity,
rk1 = RANK() OVER (ORDER BY e.Earning),
rk2 = RANK() OVER (ORDER BY e.TotalDebtToEquity),
NR = COUNT(*) OVER ()
from Earning e
SELECT
SecurityCode,
Earning,
TotalDebtToEquity,
PercentileEarningRank = ROUND((1.0*(rk1 - 1)/(nr-1))*100.00, 2),
TotalDebtToEquity = ROUND((1.0*(rk2 - 1)/(nr-1))*100.00, 2)
FROM CTE
答案 0 :(得分:2)
你想要的是加权平均值。如果所有变量(比如有5个称为a,b,c,d和e)具有相同的重要性,那么你只需计算:
out = (a+b+c+d+e)/5;
但是如果你希望a比其他所有东西重20%,你就会计算
out = (1.2*a+b+c+d+e)/5.2;
注意除数必须改变才能使结果回到0-100范围内(基本上除数是各个系数的总和,在这种情况下1.2 + 1 + 1 + 1 + 1 = 5.2)。