基于条件

时间:2015-12-09 11:42:57

标签: sql-server

我在临时表中有这个查询 我需要帮助人员

Create Table ##TBL (ID INT, NOs INT,PersonCount INT)
INSERT INTO ##TBL VALUES
(0,0,36),
(0,0,10),
(2,1,30),
(2,2,35),
(2,2,32),
(3,0,24),
(4,0,18),
(4,2,9),
(4,0,33),
(4,3,45),
(5,0,21)
SELECT * FROM ##TBL

我怎样才能得到结果 例如,当ID相同时,我应该找到最大PersonCount值的百分比。 例如,当ID = 2时,PersonCount列将为35 /(30 + 35 + 32),即PersonCount列的最大值除以总和(PersonCount) 如果是ID = 5那么我应该有21/21 = 1.00

我应该有这个结果

ID  NO  PersonCount Percent
0   0   36  0.78
2   2   35  0.36
3   0   24  1.00
4   3   45  0.43
5   0   21  1.00

非常感谢你们提前 有任何问题请告诉我

1 个答案:

答案 0 :(得分:3)

试试这个:

SELECT ID, MAX( NOs ) NOs, 
    MAX( PersonCount ) m, 
    CAST( CAST( MAX( PersonCount ) AS DECIMAL(10,2) ) /  CAST( SUM( PersonCount ) AS DECIMAL(10,2) ) AS DECIMAL(10,2) ) x
FROM ##TBL
GROUP BY ID

我希望这不是你的功课!