基于癌症发生率的患者数

问题描述 投票:0回答:1

我需要根据癌症的发生情况对患者进行计数。我将共享样本数据集和预期结果,以供您参考。

ID  Date        Inf Cancer
123 05/05/2000  1   0
123 08/07/2001  0   1
123 06/07/2002  1   0
159 01/03/2001  1   1
159 02/08/2002  0   1
618 07/07/2005  0   0
618 05/03/2006  1   0
789 06/06/2000  1   0
789 04/02/2001  0   1
789 03/03/2002  1   0

我有2个条件来获取患者人数。

  1. [在癌症后/同一日期被感染(Inf = 1)的患者(癌症= 1)的预期输出(ID 123,159,789)。
  2. [在癌症发生前被感染(Inf = 1)(癌症= 1)预期产出(ID 123,789)的患者。

请在结果末尾建议一个用于获取患者ID列表的代码。

sql rdbms
1个回答
0
投票

您可以使用exists获取患者。例如,对于第一个条件:

select distinct t.id
from t
where t.inf = 1 and
      exists (select 1
              from t t2
              where t2.id = t.id and
                    t2.cancer = 1 and
                    t2.date <= t.date
             );

您也可以为第二个条件做类似的事情。

© www.soinside.com 2019 - 2024. All rights reserved.