微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – Mysql分组数据和正则表达式

我有一张表,在检查患者后由我们的提供者记录代码.代码看起来像A11,B99,C68,A12,O87,F76等.现在,我需要创建一个报告,将这些代码分组并计算在内.组应该看起来像A00-B99,C00-D48,D50-D89等.我已经研究过,发现我可能不得不使用REGEXP,我想尽量避免使用它.有人可以帮助什么是有效和优化的方式吗?

表:

 ID  Codes   description
  1  A11     Infection
  2  A01     Intestinal infectIoUs diseases   
  3  H77     Intestinal infectIoUs diseases    
  5  D98     Intestinal infectIoUs diseases      
  6  D98     Intestinal infectIoUs diseases
  7  A11     Intestinal infectIoUs diseases
  8  A00     Intestinal infectIoUs diseases
  9  A03     Intestinal infectIoUs diseases
  10  D00     Intestinal infectIoUs diseases   
11  D98     Intestinal infectIoUs diseases
... 
...
...
...

期望的结果

code_group    Count
A00-B99       10
C00-D48       50
D50-D89       100  
...
...
...

我希望我解释了这个问题.

谢谢你的帮助!

解决方法:

您可以使用case语句进行聚合:

select (case when code between 'A00' and 'A99' then 'A00-A99'
             when code between 'B00' and 'C48' then 'B00-C48'
             when code between 'C49' and 'D99' then 'C49-D99'
             . . .
        end) as codeGroup,
       count(*)
from t
group by codeGroup
order by codeGroup;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐