【发布时间】:2017-06-28 20:02:06
【问题描述】:
我有一个包含三列的表,其中包含一个 ID、一个治疗类别,然后是一个通用名称。一个治疗类别可以映射到多个通用名称。
ID therapeutic_class generic_name
1 YG4 insulin
1 CJ6 maleate
1 MG9 glargine
2 C4C diaoxy
2 KR3 supplies
3 YG4 insuilin
3 CJ6 maleate
3 MG9 glargine
我需要首先查看治疗类别和通用名称的个体组合,然后想计算有多少患者具有相同的组合。我希望我的输出包含三列:一列是通用名称的组合、治疗类别的组合以及具有如下组合的患者数量:
Count Combination_generic combination_therapeutic
2 insulin, maleate, glargine YG4, CJ6, MG9
1 supplies, diaoxy C4C, KR3
【问题讨论】:
-
你在找
listagg() -
Do not post sample data as screen shots 使用格式化文本 - 就像你在开始时所做的那样。
-
数据模型不太对。您可能有单独的表格用于治疗类别和通用名称(如果不这样做,则应该),但缺少一个。大概不是每个通用名称都可以与每个治疗类别相关联。只有一些对是有效的,而另一些是无效的。这应该在一个单独的、多对多的关联表中,每个有效对都有一个唯一的标识符。然后,您的带有患者和成对(治疗类、通用名称)的表应该有患者和此类有效对的唯一 ID。这也会使查询更简单。
标签: sql oracle string-aggregation