如何在SQL中为多次开闭入组的研究分配活跃/完成标签?
研究状态分类(活跃/完成)的LOD计算方案
需求说明
基于研究的状态历史数据,按Study ID进行分类:
- 只要该研究存在CLOSED状态,标记为「完成」
- 从未出现过CLOSED状态的研究,标记为「活跃」
计算字段实现
创建一个名为「研究分类」的计算字段,使用以下Fixed LOD表达式:
IF {FIXED [Study ID]: MAX(IF [Status] = 'CLOSED' THEN 1 ELSE 0 END)} = 1 THEN '完成' ELSE '活跃' END
逻辑解释
{FIXED [Study ID]: ...}:以Study ID为分组维度,对每组数据执行聚合计算MAX(IF [Status] = 'CLOSED' THEN 1 ELSE 0 END):在每个研究组内,将CLOSED状态转换为1,其他状态转换为0;取最大值的目的是,只要组内有至少一个CLOSED,结果就为1,否则为0- 外层IF判断:根据分组聚合的结果,将研究映射为「完成」或「活跃」
效果验证
针对你提供的Study ID 174739,由于存在4/1/2022的CLOSED记录,该研究会被标记为「完成」;若某研究的所有状态记录中无CLOSED,则会被标记为「活跃」。
内容的提问来源于stack exchange,提问作者Sanjana Madakshire
相关产品推荐
相关产品推荐

