我有一个健康结果数据库,我想能够在特定日期范围内查询符合特定诊断字符串的受试者数量。虚拟数据(
然而,问题在于我无法在count括号中包含一个独立的语句,因为这会返回错误。我要找的是在特定日期之后满足诊断代码字符串的唯一主题数;我对每个患者出现诊断代码字符串的次数不感兴趣。
问题:是否有一种方法可以计算在特定日期之后与特定诊断字符串匹配的每个给定主题的唯一出现总数?
解决方案需要使用Impala。谢谢提供任何建议。
my_table
)如下所示(Date
为时间戳):subjid Diagnosis Date
----------------------------------------
Subj001 Z12345 2019-02-05 00:00:00
Subj001 Z12345 2017-01-10 00:00:00
Subj002 Z12345 2018-08-14 00:00:00
Subj002 Z12345 2014-03-20 00:00:00
Subj002 Z12345 2013-07-23 00:00:00
Subj003 Y56789 2016-08-16 00:00:00
在 subjid 中,每个主题可能有多个条目,每个条目都有相应的诊断代码。 到目前为止,我的查询如下:
select
subjid, Diagnosis, Date,
count(subjid) over (partition by Diagnosis) as count
from
my_table
where
Diagnosis in ('Z12345')
and diag_date >= '2014-01-01 00:00:00'
然而,问题在于我无法在count括号中包含一个独立的语句,因为这会返回错误。我要找的是在特定日期之后满足诊断代码字符串的唯一主题数;我对每个患者出现诊断代码字符串的次数不感兴趣。
问题:是否有一种方法可以计算在特定日期之后与特定诊断字符串匹配的每个给定主题的唯一出现总数?
解决方案需要使用Impala。谢谢提供任何建议。