2016-07-11 2 views
0

Я хочу разделить столбец, основанный на если условие является истинным или ложным, и подсчитать количество пациентов в каждой категории для каждого врачаSplit колонки условно

Это мой код:

SELECT p.MRP_CP_ID, COUNT(p.PTNT_ID) FROM PATIENT p 
JOIN PATIENT_SCHEDULE ps ON ps.PTNT_ID = p.PTNT_ID 
WHERE ps.MLTPL_PHRM_FLG = 0 
GROUP BY MRP_CP_ID; 

Но Я хочу отобразить количество пациентов, для которых MLTPL_PHRM_FLG равен 1 в другом столбце. Есть простой способ сделать это?

current result from that displayed here

+0

Просьба представить представительный набор тестовых данных и желаемый результат. –

ответ

0

Это может быть сделано с условной агрегации.

SELECT p.MRP_CP_ID, 
COUNT(*) Total, 
COUNT(CASE WHEN ps.MLTPL_PHRM_FLG = 0 then 1 END) as PHRM_FLG_0_Counts, 
COUNT(CASE WHEN ps.MLTPL_PHRM_FLG = 1 then 1 END) as PHRM_FLG_1_Counts 
FROM PATIENT p 
JOIN PATIENT_SCHEDULE ps ON ps.PTNT_ID = p.PTNT_ID 
GROUP BY MRP_CP_ID; 
Смежные вопросы