Как рассчитать процент от общей суммы за год - PullRequest
0 голосов
/ 24 августа 2018

В SQL Server у меня есть запрос

SELECT
    fundingyear, tran_type, 
    COUNT(tran_type) AS total_tran
FROM
    vw_LoanRpt
GROUP by 
    fundingyear, tran_type
ORDER BY 
    FundingYear

Он возвращает следующие результаты:

  fundingyear tran_type   total_tran
1 2017        Purchase    2501
2 2017        Refianance  3444
3 2018        Purchase    2666
4 2018        Refianance  4787

Что я пытаюсь сделать, это добавить столбец, который рассчитывает процент отвсего_тран в год.Так что сумма 2017 года в total_tran делится на проценты и равна 2018. Любая помощь, которая поможет мне встать на правильный путь, будет высоко оценена.

Ответы [ 2 ]

0 голосов
/ 24 августа 2018

Вы можете сделать это без подзапроса:

SELECT fundingyear, tran_type, 
       COUNT(*) AS total_tran,
       COUNT(*) * 1.0 / SUM(COUNT(*)) OVER (PARTITION BY fundingyear) as year_ratio
FROM vw_LoanRpt
GROUP by fundingyear, tran_type
ORDER BY FundingYear;
0 голосов
/ 24 августа 2018

Поскольку у меня нет данных, я не смог проверить это, но это должно сработать (я предполагаю, что вы хотите, чтобы предельный вклад total_tran на tran_type для каждого года):

    SELECT fundingyear, tran_type, total_tran, 
           (100*total_tran)/SUM(total_tran) OVER(PARTITION BY funding_year) AS total_tran_perc
    FROM
    (
    SELECT fundingyear, tran_type, COUNT(tran_type) AS total_tran
    FROM vw_LoanRpt
    GROUP by fundingyear, tran_type
    ) a1
    ORDER BY fundingyear
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...