我有用户提交的数据,措辞并不完全相同,但有相似之处请参阅下面的示例
---No | Catergory
526 HIV
418 HIV/AIDs
207 RVD
86 HIV/AIDS.
84 HIV INFECTION
58 HIV PATIENT ON HAART
54 RETROVIRAL DISEASE
44 LIPODYSTROPHY
39 MALARIA
36 HIV MANAGEMENT
36 Chronic Myeloid Leukemia我想要得到总数,这样所有带有HIV,H.I.V,Retro的行都被归为一个类别,如下所示
category | number
------------------
HIV | 1500
----------------------
MALARIA | 39
......有什么建议吗?
发布于 2018-06-25 23:49:50
使用CASE表达式进行分组,如下所示:
SELECT
CASE WHEN Category LIKE '%HIV%' OR Category LIKE '%Retro%'
THEN 'HIV'
ELSE Category END AS Category,
COUNT(*) AS number
FROM yourTable
GROUP BY
CASE WHEN Category LIKE '%HIV%' OR Category LIKE '%Retro%'
THEN 'HIV'
ELSE Category END;您用来将各种类别映射到HIV存储桶中的确切逻辑可能与我上面列出的不同。您可能只需要使用IN并与要映射的类别的完整列表进行比较。
https://stackoverflow.com/questions/51027373
复制相似问题