2015-12-09 3 views
1

У меня есть этот запрос в временную таблицу и мне нужна помощь, ребята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 

Большое спасибо, ребята заранее Любой вопрос, пожалуйста, дайте мне знать

+0

Результат 'NO'' 'MAX (NO)' или 'NO' для' max (PersonCount) 'row? –

ответ

2

Попробуйте это:

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 

Надеюсь, это не ваша домашняя работа!