首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >计数数不正确

计数数不正确
EN

Stack Overflow用户
提问于 2017-04-24 09:07:09
回答 1查看 122关注 0票数 0

我有一个关于我的查询的问题。我将使用一个示例来代替。因此,对于名为“脓肿”的疾病名称,在我的诊断表中已经诊断了两次,但我只得到了1。然而,当我使用我的诊断表中的疾病it检查它时,我得到了2。请重建我的答案!

问题:列出所有疾病的名称,并计算每种疾病在诊所被诊断的次数。该列表列出了很少识别的疾病,因此仅显示诊断计数小于5的疾病。注意:0小于5。提供SQL查询和结果的数据可视化。

我的答案是:

代码语言:javascript
运行
复制
SELECT disease.name, COUNT(*) AS number_of_disease_diagnosed
FROM disease
WHERE diseaseid IN (SELECT DISTINCT diseaseid FROM diagnosed)
GROUP BY disease.name
HAVING COUNT(*) <= 5
UNION
SELECT diseaseid,0
FROM disease
WHERE diseaseid NOT IN (SELECT DISTINCT diseaseid FROM diagnosed);
EN

回答 1

Stack Overflow用户

发布于 2017-04-24 11:26:19

我认为问题出在您的查询上。正如Prisoner所暗示的,您应该使用连接而不是在子查询中使用。

具体地说,我将对此查询使用外部联接,例如:

代码语言:javascript
运行
复制
select disease.name, count(diagnosed.diagnosedid) as Count
from
  disease
  left outer join diagnosed on disease.diseaseID = diagnosed.diseaseID
group by
  disease.Name
having
  count(diagnosed.diagnosedid) <= 5

外连接将获取疾病的每一行,以及来自诊断表的匹配行(如果存在)。然后,GROUP BY & HAVING子句的使用将过滤出您所寻求的结果。

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43578268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档