我想计算“诊断”列中字符串的出现。

我现在正在做的只是这个-它得到了我需要的结果

SELECT COUNT(*), diagnosis
FROM patients
WHERE diagnosis like "%OS1%"
UNION

SELECT COUNT(*), diagnosis
FROM patients
WHERE diagnosis like "%OS2%"

... and so on


有时在我的表中,字符串可能出现两次(例如OS1,OS2),我想对字符串的每一次出现进行计数。

我认为这是另一种语言中的简单任务,但我想用纯SQL来完成。

最佳答案

将OS1-OS6和CH1-CH6值放在诊断表中。 JOINGROUP BY

SELECT COUNT(*), d.diagnosis
FROM patients p
RIGHT JOIN diagn d
   on p.diagnosis like concat('%', d.diagnosis, '%')
group by d.diagnosis

10-04 11:20