Запрос итогов и подмножеств итогов - PullRequest
0 голосов
/ 18 октября 2019

Я работаю с таблицей (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, а затем разбить на источник. Будет ли это сделано в одном более длинном запросе, или мне нужно будет создать таблицу чисел и присоединиться к существующей таблице?

...