ORCL分组聚合,行转列
2017-09-21 17:18
232 查看
先说结果
1) LISTAGG(PS.PERSON_NAME,',') WITHIN GROUP ( ORDER BY PS.PERSON_NAME)
2) wm_concat(PS.PERSON_NAME)
1)必填order by的东西,(这个order by 是很有用的 自己做了2个字段的行转列,但是2个字段 没有一一匹配,必须根据主键id排序后,才能在后面调用)
2)orcl说不推荐,容易产生类型错误,具体不研究,(排序可以参考http://www.cnblogs.com/wayne-ivan/p/6416489.html)
优点/用处:
主表一行对应子表几行,我按照主表分组,需要将子表的一个字段拼接
缺点
不能加入限定条件,比如PS.PERSON_NAME,这个属性有一部分是需要的,要过滤掉不需要的,只能在外边做
这样就要写很多代码,做子查询
附图
SELECT
SR.SUCCESSIONRECORD_ID,SR.SUCCESSION_DATETIME,LISTAGG(SC.CAREPROVIDER_ID,',') WITHIN GROUP (ORDER BY SC.CAREPROVIDER_ID)
FROM SUCCESSIONRECORD SR ,SUCCESSIONCAREPROVIDER SC,CAREPROVIDER CP,PERSON PS
WHERE SR.SUCCESSIONRECORD_ID = SC.SUCCESSIONRECORD_ID
AND SC.CAREPROVIDER_ID = CP.CAREPROVIDER_ID
AND CP.PERSON_ID = PS.PERSON_ID
GROUP BY SR.SUCCESSIONRECORD_ID,SR.SUCCESSION_DATETIME
表1:
表2:
SQL:
1) LISTAGG(PS.PERSON_NAME,',') WITHIN GROUP ( ORDER BY PS.PERSON_NAME)
2) wm_concat(PS.PERSON_NAME)
1)必填order by的东西,(这个order by 是很有用的 自己做了2个字段的行转列,但是2个字段 没有一一匹配,必须根据主键id排序后,才能在后面调用)
2)orcl说不推荐,容易产生类型错误,具体不研究,(排序可以参考http://www.cnblogs.com/wayne-ivan/p/6416489.html)
优点/用处:
主表一行对应子表几行,我按照主表分组,需要将子表的一个字段拼接
缺点
不能加入限定条件,比如PS.PERSON_NAME,这个属性有一部分是需要的,要过滤掉不需要的,只能在外边做
这样就要写很多代码,做子查询
附图
SELECT
SR.SUCCESSIONRECORD_ID,SR.SUCCESSION_DATETIME,LISTAGG(SC.CAREPROVIDER_ID,',') WITHIN GROUP (ORDER BY SC.CAREPROVIDER_ID)
FROM SUCCESSIONRECORD SR ,SUCCESSIONCAREPROVIDER SC,CAREPROVIDER CP,PERSON PS
WHERE SR.SUCCESSIONRECORD_ID = SC.SUCCESSIONRECORD_ID
AND SC.CAREPROVIDER_ID = CP.CAREPROVIDER_ID
AND CP.PERSON_ID = PS.PERSON_ID
GROUP BY SR.SUCCESSIONRECORD_ID,SR.SUCCESSION_DATETIME
表1:
表2:
SQL:
相关文章推荐
- java对mongo的一些去重、分组聚合、分页查询等操作
- Spark的Dataset操作(三)-分组,聚合,排序
- 第六章: 聚合查询 与 分组
- mysql 分组聚合事例
- elasticsearch选择器聚合,分组返回聚合结果
- 第九章 数据聚合与分组计算
- Dubbo分组聚合
- django-聚合、分组、F查询和Q查询、总结
- python 数据聚合与分组
- 聚合分析与分组
- 【0042】SQL查询--分组聚合
- 条件查询---6.5.2: 投影、聚合和分组
- 利用Python进行数据分析--数据聚合与分组运算
- SQL你必须知道的-查询聚合分组排序
- oracle聚合与分组
- Objects聚合分组,统计结果个数(Count)
- Django模型系统——ORM中跨表、聚合、分组、F、Q
- Elasticsearch 5.4.3 聚合分组实战演练
- 【SQL】分组再聚合&ratio_to_report函数
- mysql 使用group by with rollup分组聚合信息