2013-08-05 78 views
-1

排名數據我有一個MySQL表存儲在員工的績效,其中包括四個因素:與多個因素和不同比例

http://sqlfiddle.com/#!2/84375/1

現在我想排名由不同比例的員工。

所有因素都是「越高越好」。

factor2可以是負數。

它們的比例是: -

因子1:45%

因子2:25%

factor3:15%

因子-4:15%

我不沒有任何想法如何做到這一點,

但如果它是不可能的要做只有SQL,

我的服務器端語言是PHP。

+0

什麼是你對測量得到的百分比每個值? – jeff

+0

這個「比例」是什麼,你如何計算它? – silkfire

+0

你能澄清你想要做什麼嗎? –

回答

0

這是否正常工作?

SELECT *,(45 *因子1 + 25 *因子2 + 15 * Factor3 + 15 *因子-4)/ 100性能FROM EmployeePerformance ORDER BY性能DESC

編輯:閱讀我相信的意見後,這就是你想要

select *, 
    (45 * Factor1/(select SUM(Factor1) from EmployeePerformance) 
    + 30*Factor2/(select SUM(Factor2) from EmployeePerformance) 
    + 15*Factor3/(select SUM(Factor3) from EmployeePerformance) 
    + 15*Factor4/(select SUM(Factor4) from EmployeePerformance) 
)/100 as Performance 
FROM EmployeePerformance 
ORDER BY Performance DESC 
+0

問題是所有四個因素都有不同的「最高分」。如果他們的得分都是「xx/100」,那就好了。劑量誰知道我們應該如何以統計的方式處理這樣的數據? –

+0

max-score是什麼意思?我們應該測量.45 * Factor1/Factor1MaxScore? –

+0

我看着你的維基鏈接,這和在那裏討論過的(迴歸加權的) –

0

你找這個?

SELECT * , (45*Factor1 + 25*Factor2 + 15*Factor3 + 15*Factor4)/100 as proportion 
FROM EmployeePerformance 
ORDER BY id 

demo

+0

問題是所有四個因素都有不同的「最大分數」。如果他們的得分都是「xx/100」,那就好了。劑量誰知道我們應該如何以統計的方式處理這樣的數據? –