2015-12-29 73 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