#sql #sql-server
#sql #sql-сервер
Вопрос:
Данные и желаемый результат:
У меня есть приведенные выше данные, я хотел бы вычислить процент и показать соответствующие количества записей. Ключ подсчета представляет собой объединение 3 полей, я хочу подсчитывать его только тогда, когда он уникален по фамилии, затем я хотел бы узнать процент от общего количества для каждого отдельного типа статуса по фамилии. CountKeyTotal — это общее количество уникальных ключей для Smith, CountKey — это общее количество уникальных ключей по фамилии по статусу
Я довольно новичок в SQL и смог получить только итоговые значения в целом (в качестве примера, используя предоставленные данные, Smith 40 3 12 25%
любая помощь будет оценена
Комментарии:
1. у меня есть MS SQL server mgmt studio, а также службы отчетов SQL для работы
Ответ №1:
Вы можете использовать group by и динамическую временную таблицу для total
select
a.name, a.status
, count(a.countKey) as CountKEy
, c2 as CountKeyTotal
, (a.count(*) / b.c1) *100 as percentage
from my_table as a
inner join( select name, count(*) as c1 , count(countKey) c2 from my_table
group by name) b on a.name = b.name
group by a.name