2015-12-29 76 views
-1

有沒有辦法選擇虛擬列作爲另一列的百分比,記錄的最大值是100%?選擇虛擬列作爲百分比

 
Example: 

+------------------------------+ 
| tbl_test      | 
+------------------------------+ 
| id | col_x | value | percent | 
+------------------------------+ 
| 1 |  a |  2 |  25 | 
| 2 |  b |  5 | 62.5 | 
| 3 |  c |  8 |  100 | 
| 4 |  d |  3 | 37.5 | 
+------------------------------+ 

正如你可以看到8成爲100%,其餘被計算爲8

SELECT * ,() as percent 
FROM tbl_test 

回答

0

一個百分比做這樣的事情,你首先需要知道100%是什麼:

SELECT *, value/(SELECT MAX(value) AS hperc FROM tbl_test)*100 AS percent 
FROM tbl_test; 

SELECT MAX(value) AS hperc FROM tbl_test; 

一旦知道,你可以通過這個100%除以其他值

0

這是如何在TSQL中完成的:

select @max = max(value) from tbl_test 
select *, cast(value/@max * 100 as decimal(18,2)) as [percent] 
from tbl_test