首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何编写这个MySQL查询?

如何编写这个MySQL查询?
EN

Stack Overflow用户
提问于 2017-12-12 03:05:08
回答 1查看 31关注 0票数 0

表'treatment‘包含列'staff_no’、'patient_id‘、'start_date’、'reason‘。现在,我必须选择一个查询,以获得数据库中接受每种类型治疗(即治疗的原因)的不同患者的数量,按治疗原因的字母顺序排序,但只需列出至少有2名患者正在接受治疗的治疗。这是我写的-

代码语言:javascript
复制
SELECT COUNT (DISTINCT patient_id) CountNumber, reason FROM 'treatment' GROUP 
BY reason ORDER BY reason;

但是我得到了#1064error。

EN

回答 1

Stack Overflow用户

发布于 2017-12-12 06:18:29

可能是这样,exists子查询将选择分组中超过2行的所有原因,其中select distinct将生成唯一的reasonspatient_id列表,外部select将显示按该原因的患者数量排序的原因

代码语言:javascript
复制
SELECT `reason`, COUNT(*) FROM 
 (
      SELECT DISTINCT `patient_id`, `reason` FROM `treatment` 
      WHERE EXISTS  (
            SELECT `reason` FROM `treatment` t2 
                WHERE `treatment`.`reason` = `t2`.`reason` 
               GROUP BY `reason`
               HAVING COUNT(*)>=2
      )
 ) t 
 GROUP BY reason ORDER BY `reason` 

HAVING是一种条件,但适用于COUNT、AVG等聚合函数

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

https://stackoverflow.com/questions/47759670

复制
相关文章

相似问题

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