我需要在 oracle SQL 中进行 SELECT 并将每天的结果放在一行中
我尝试了以下选择
select distinct admission_date ,
SUBSTR(ADMISSION_DATE,7,2) as "admission day" ,
case when nationality = 1 then count(distinct a.patient_no) end as "S" ,
case when nationality > 1 then count(distinct a.patient_no) end as "NS"
from inp_admission_history a , mr_files b
where admission_date between 20231201 and 20231230
and a.PATIENT_NO = b.PATIENT_NO
group by admission_date , SUBSTR(ADMISSION_DATE,7,2) , nationality
order by admission_date
但查询结果将每个国籍分组在一行中,如下所示
admission_date admission day S NS
20231201 01 15
20231201 01 20
20231201 01 7
每天按国籍分组显示在多行中
我需要每天像这样一行显示
admission_date admission day S NS
20231201 01 15 27
我该怎么做,请提前谢谢你
你没有发布测试用例,所以我简化了情况,只使用了一张表;自己加入,但这就是如何做到这一点。
样本数据:
查询:条件聚合:
还有一件事:为什么要将入场日期作为字符串保留在 VARCHAR2(或类似)列中?这就需要出现问题。如果可能,请切换到
DATE
数据类型。