我想计算“诊断”列中字符串的出现。
我现在正在做的只是这个-它得到了我需要的结果
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值放在诊断表中。 JOIN
和GROUP BY
:
SELECT COUNT(*), d.diagnosis
FROM patients p
RIGHT JOIN diagn d
on p.diagnosis like concat('%', d.diagnosis, '%')
group by d.diagnosis