排名數據我有一個MySQL表存儲在員工的績效,其中包括四個因素:與多個因素和不同比例
http://sqlfiddle.com/#!2/84375/1
現在我想排名由不同比例的員工。
所有因素都是「越高越好」。
factor2可以是負數。
它們的比例是: -
因子1:45%
因子2:25%
factor3:15%
因子-4:15%
我不沒有任何想法如何做到這一點,
但如果它是不可能的要做只有SQL,
我的服務器端語言是PHP。
排名數據我有一個MySQL表存儲在員工的績效,其中包括四個因素:與多個因素和不同比例
http://sqlfiddle.com/#!2/84375/1
現在我想排名由不同比例的員工。
所有因素都是「越高越好」。
factor2可以是負數。
它們的比例是: -
因子1:45%
因子2:25%
factor3:15%
因子-4:15%
我不沒有任何想法如何做到這一點,
但如果它是不可能的要做只有SQL,
我的服務器端語言是PHP。
這是否正常工作?
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
問題是所有四個因素都有不同的「最高分」。如果他們的得分都是「xx/100」,那就好了。劑量誰知道我們應該如何以統計的方式處理這樣的數據? –
max-score是什麼意思?我們應該測量.45 * Factor1/Factor1MaxScore? –
我看着你的維基鏈接,這和在那裏討論過的(迴歸加權的) –
你找這個?
SELECT * , (45*Factor1 + 25*Factor2 + 15*Factor3 + 15*Factor4)/100 as proportion
FROM EmployeePerformance
ORDER BY id
問題是所有四個因素都有不同的「最大分數」。如果他們的得分都是「xx/100」,那就好了。劑量誰知道我們應該如何以統計的方式處理這樣的數據? –
什麼是你對測量得到的百分比每個值? – jeff
這個「比例」是什麼,你如何計算它? – silkfire
你能澄清你想要做什麼嗎? –