Я работаю с таблицей (medclaims
) в spark, которая содержит столбцы для идентификаторов пациентов (patientid
), кодов cpt (cpt
), кодов icd10 (icd10
) и поставщиков исходного кода (provider
). Я пытаюсь создать вывод, который будет перечислять только пациентов, которые имеют определенный интересующий код CPT, а затем сообщать мне общее количество пациентов на код CPT. Затем из этого итога я хочу проверить, сколько патиентидов также имеет интересующий код ICD10, а затем разбить его по источникам. Я хочу, чтобы мой вывод выглядел примерно так:
CPT | Sum | Sum Subset w/ ICD10 | SourceA Sum CPT | SourceA Sum Subset w/ ICD10 | SourceB Sum CPT|....
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 100 90 50 45 50
2 3500 250 1500 100 2000
10 800 600 300 200 500
Я создал временную таблицу из большого списка cpt и icd10, который мне нужен. Затем построил еще одну временную таблицу, чтобы выбрать группу из patientid
с заданным cpt
интересом, в основном так:
CREATE TABLE user.temp_medical_cpt AS
SELECT patientid, cpt, icd10, provider
FROM medclaims
WHERE provider in ('providerA', 'providerB', 'providerC')
AND cpt in (select code from user.temp_cpt_list)
Затем я разбил итоги для кодов cpt
, чтобы получитьпервые 2 столбца, такие как:
SELECT distinct cpt AS CPT, count (distinct patientid) AS Sum
FROM user.temp_medical_cpt
Но я не уверен, как сделать, чтобы перекрыть перекрытия с помощью icd10
, а затем разбить на источник. Будет ли это сделано в одном более длинном запросе, или мне нужно будет создать таблицу чисел и присоединиться к существующей таблице?