Я пишу запрос к таблице вымышленных страховых претензий под названием ПРЕТЕНЗИИ, используя СЛУЧАЙНЫЕ ОБОБЩЕННЫЕ ФИКЦИОНАЛЬНЫЕ ИМЕНА И ДАННЫЕ.
В столбце PRIMARY_DX есть 5 различных категорий: алкоголизм, тревожное расстройство, депрессия, Психоз, расстройство при использовании вещества
Другими основными столбцами являются PATIENT_ID и CLAIM_PAID_AMT
Я хочу суммировать CLAIM_PAID_AMT на ПАЦИЕНТА на PRIMARY_DX и перечислять только 5 лучших пациентов, у которых самая высокая сумма на каждогоPRIMARY_DX
Единственный способ, которым я мог подумать, это сделать с помощью двух общих табличных выражений, где в CTE1 I разделить по PRIMARY_DX и PATIENT_ID и SUM CLAIM_PAID_AMT для каждого ПАЦИЕНТА.
Затем в CTE2 Iиспользуйте функцию ROW_NUMBER на CTE1, чтобы разделить по PRIMARY_DX и отсортировать по TotalClaims DESC и выбрать топ-5 из каждого PRIMARY_DX.
Я пишу SQL менее 2 лет, и мне было интересно, если это может бытьвыполнено в одном CTE или, возможно, с некоторыми длям. Cross Apply?
Я включил мой код и вывод ниже.
;WITH CTE1 AS
(
select PRIMARY_DX, PATIENT_ID, TotalClaims = SUM(CLAIM_PAID_AMT)
OVER (PARTITION BY PRIMARY_DX, PATIENT_ID ORDER BY PATIENT_ID, CLAIM_PAID_AMT DESC)
from claims
)
,
CTE2 AS
(SELECT *, RowCounter = ROW_NUMBER() OVER (PARTITION BY PRIMARY_DX ORDER BY TotalClaims DESC) FROM CTE1)
select CTE2.PRIMARY_DX, CTE2.TotalClaims from CTE2
where RowCounter <= 5
order by CTE2.PRIMARY_DX, CTE2.TotalClaims DESC
Алкоголизм 3737,51 Джо Смит
Алкоголизм 3282,07 Сьюзи Домохозяйка
Алкоголизм 3207,72 Джои Страммер
Алкоголизм 3040,52 Расти Nailfile
Алкоголизм2997.02 Биг Бен
Тревожное расстройство 3291.14 Норман Пигсти
Тревожное расстройство 3113.05 Билли Боб
Тревожное расстройство 3101.13 Рэйчел Антарктида
Тревожное расстройство 3058.52 Джон Джон
тревожное расстройство 3021,98 Кэти Европа
Депрессия 3466,14 Фрида Бигалли
Депрессия 3279,25 Рон Джеремиза
Депрессия 3140,43 Шарон Шароназ
Депрессия 3119,26 Allie Kat *1019*
Депрессия 3118,54 Бифф Биффсоферсон
Психоз 3098,13 Джеймс Монополия
Психоз 2991,23 Леон ошибочно
Психоз 2857,69 Люси Ратч-МакМерфи
Психоз Bib 26
Психоз 2602.24 Sam Zypperzsky
Расстройство при использовании веществ 3435.27 Donald Duckaronawitz
Нарушение использования веществ 3300.33 Нарушение Микки Маус
Нарушение использования веществ 3285.41 Hector Heathercoatz
Нарушение использования веществ 3179 Erin GoBragh
Нарушение использования веществ 3147.09 Bono Edtein1066 *