#sql #sql-server #count #aggregate-functions #percentage
#sql #sql-сервер #количество #агрегатные функции #процентное соотношение
Вопрос:
У меня есть временная таблица, которая дает мне эти результаты.
Question Option TotalUsers
Question1 Q1Option1 4
Question1 Q1Option2 0
Question1 Q1Option3 4
Question1 Q1Option4 0
Question2 Q2Option1 2
Question2 Q2Option2 2
Question2 Q2Option3 2
Question2 Q2Option4 2
Запрос
SELECT Question, Option, TotalUsers FROM @TemporaryResultTable
Мне нужно вычислить процент TotalUsers из TotalUsers с помощью в этом вопросе это означает, что он сгруппирован по этому вопросу, как показано ниже.
Я пытался следующим образом, но не работает.
SELECT Question, Option, TotalUsers, SUM([TotalUsers]) * 100/NULLIF(SUM([TotalUsers]), 0) OVER (PARTITION BY Question) AS 'Percentage' FROM @TemporaryResultTable
GROUP BY Question, Option, TotalUsers
любая помощь в этом
Ответ №1:
Вы можете использовать оконные функции:
select question, option, totalusers,
100.0 * totalusers / sum(totalusers) over(partition by question) as percentage
from @temporaryresulttable