Как создать вывод с суммами, для которых выполняется определенное условие - PullRequest
0 голосов
/ 30 октября 2019

У меня есть таблица medicalclaims, в которой есть несколько интересующих столбцов: patient_id, vendor, claim_id, diagnosis_code, procedure_code и state.

Короче говоря, я хочу получить общее число patient_id и общее число claim_id, но я также хочу проверить итоговые значения для diagnosis_code, procedure_code и state. Например, я хочу, чтобы мои выходные столбцы выглядели примерно так:

vender | count(distinct patient_id) | count (distinct claim_id) | procedure_code = E123 | state = CA

В настоящее время я использую этот запрос: venders, count_id Patient и Claim_id_id:

SELECT distinct vendor, count (distinct patient_id) AS Patients, count (distinct claim_id) AS Claims
FROM medicalclaims
GROUP BY 1
ORDER BY 1

Тем не менее, я не уверен, как построить оставшиеся столбцы для захвата определенных diagnosis_code, procedure_code и state интересующих значений. Я хочу узнать общее количество пациентов в ЦА или Нью-Йорке, а также суммы для конкретных кодов диагноза или кода процедуры. Таким образом, добавление столбцов, которые выглядят примерно так, к выводу:

SELECT count(distinct patient_id)
FROM medicalclaims
WHERE state = 'CA'

и

SELECT count(distinct patient_id)
FROM medicalclaims
WHERE procedure_code = 'xyz'

1 Ответ

1 голос
/ 30 октября 2019

Я думаю, что вы хотите:

SELECT vendor, count(distinct patient_id) AS Patients,
       count(distinct claim_id) AS Claims,
       sum(case when procedure_code = 'xyz' then 1 else 0 end) as procedure_xyz,
       sum(case when state = 'xyz' then 1 else 0 end) as state_ca
FROM medicalclaims
GROUP BY 1
ORDER BY 1
...