我有用户提交的数据,措词不完全相同,但有一个相似之处,请参见下面的示例
---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
......
有什么建议吗?
答案 0 :(得分:0)
使用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
并与要映射的类别的完整列表进行比较即可。