【问题标题】:COUNT total DISTINCT values from one column一列中的 COUNT 个总 DISTINCT 值
【发布时间】:2021-11-06 20:59:35
【问题描述】:

我有 4 列的表(ID、代码、疾病的标题/名称和值)我只想要患有疾病“A”或“B”的唯一 ID_患者的总数(如果患者同时诊断为 A 和 B,在结果数字将只计算一次)。

我尝试使用 GROUP BY 进行简单的 COUNT,但在执行后我只得到带有值的新列。

也尝试使用 (select, count, ...) 进行子查询,但也没有用。 感谢您的建议和帮助。

图片在这里:

Enter image description here

【问题讨论】:

  • 样本数据和所需结果将使您的问题更容易理解。例如,您没有将id_patient 列为表格中的一列。
  • 根据问题指南,请展示您尝试过的内容并告诉我们您发现了什么(在本网站或其他地方)以及为什么它不能满足您的需求。并且请不要发布代码、数据、错误消息等的图像 - 将文本复制或输入到问题中。请保留将图像用于图表或演示渲染错误,无法通过文本准确描述的事情。
  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: sql sql-server tsql count distinct


【解决方案1】:

这似乎是带有过滤功能的count(distinct):

select count(distinct id_patient)
from t
where disease in ('A', 'B');

【讨论】:

  • 还是不行,我只需要统计所有的 id_patients
  • 上述结果将给出所需的结果。您正在将上述查询与其他没有意义的列结合起来。你没有清楚地解释你的要求
  • @AkshayGaonkar 不,它不会,因为它会计算患者只有疾病 A,而不是疾病 B。
  • @Pred 我不关注你。有一个IN Operator。
  • @AkshayGaonkar 并且将为每一行评估该 IN。它将与以下所有对匹配:Patient1-DiseaseA、Patient2-DiseaseB、Patient3-DiseaseA、Patient3-DiseaseB。 OP 想要计算同时患有疾病 A 和疾病 B 的患者。使用我的示例记录查询将得到 3,而预期结果是 1(只有 Patient3 有两种疾病)。如果我误解了这个问题,那么对不起,你是对的
猜你喜欢
  • 1970-01-01
  • 2013-05-12
  • 1970-01-01
  • 2020-10-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-24
  • 2013-09-22
  • 2014-07-04
相关资源
最近更新 更多