Sql 基于癌症发生列的患者数量

Sql 基于癌症发生列的患者数量,sql,rdbms,Sql,Rdbms,我需要一个基于癌症发生情况的患者计数。我将分享示例数据集和预期结果,供您参考 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/0

我需要一个基于癌症发生情况的患者计数。我将分享示例数据集和预期结果,供您参考

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
我有两个条件来计算病人数量

在癌症发生后/同一日期感染F=1的患者癌症=1预期输出123159789。 癌症前感染F=1的患者癌症=1预期输出123789。 请建议在结果末尾使用代码获取患者ID列表。

您可以使用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
             );

您也可以对第二种情况执行类似的操作。

这里的大多数人希望示例表数据和预期结果是格式化文本,而不是图像。示例数据最好以格式显示。有关如何创建美观的表格的一些提示,请参见。你能再加上预期产量吗?你用的是哪种产品?SQL只是一种查询语言,而不是特定数据库产品的名称。请为您正在使用的数据库产品添加。能否请您提供样品数据并向我们展示预期数据?