SELECT n_sec_code, TRANSLATE (LTRIM (text, '/'), '*/', '*,') researcherList
FROM (SELECT ROW_NUMBER () OVER (PARTITION BY n_sec_code ORDER BY n_sec_code,
lvl DESC) rn,
n_sec_code, text
FROM (SELECT n_sec_code, LEVEL lvl,
SYS_CONNECT_BY_PATH (c_researcher_code,'/') text
FROM (SELECT n_sec_code, c_researcher_code as c_researcher_code,
ROW_NUMBER () OVER (PARTITION BY n_sec_code ORDER BY n_sec_code,c_researcher_code) x
FROM m_researcher_stock_rel
ORDER BY n_sec_code, c_researcher_code) a
CONNECT BY n_sec_code = PRIOR n_sec_code AND x - 1 = PRIOR x))
WHERE rn = 1
ORDER BY n_sec_code;
预想的结果成功出现,多行数据成功汇总到一行,特此分享与大家。对于你自己的应用中,
只需要把SQL中“n_sec_code”换为你的用来汇总的列,
“c_researcher_code”替换为需合并文本的列,
“m_researcher_stock_rel”替换为你的表名,就是这么简单。
SQL分析:
1、利用 “ROW_NUMBER () OVER (PARTITION BY……” 为按“股票代码”汇总后的数据行添加组内序号
2、“SYS_CONNECT_BY_PATH” 按组内序号相邻关系,为每一层进行不同行的“研究员代码”叠加
3、再次利用“股票代码”进行组内分组,但按第二部中的层次排倒序,增加调整后等级
4、取所有调整后等级为1的结果,即为所要求的数据行
分享到:
相关推荐
根据提供的信息,本文将详细介绍如何在Oracle数据库中将某个字段的多行记录转换为一行记录的方法。这种方法在处理大量数据时非常有用,特别是在需要将多个值汇总到一个字段中的场景下。 ### 标题理解:“oracle某个...
在Oracle数据库中,有时我们需要将多个字段值转换为单个字符串,或者将多行记录合并成一行,这在数据处理和报告生成时尤其常见。Oracle提供了多种方法来实现这一目标,包括使用内置函数、PL/SQL过程以及一些高级特性...
例如,有一个表t_row_col,其中包含多行数据,需要将这些行数据合并成一个字符串数据。 可以使用LISTAGG函数来实现多行转换成字符串,例如: ```sql SELECT LISTAGG(cn || ',' || cv) WITHIN GROUP (ORDER BY id) ...
Oracle 教程 本 Oracle 教程旨在帮助 Oracle 数据库初学者和数据库专业... * DELETE:从表中删除一行或多行 * MERGE:使用单个语句逐步完成插入、更新和删除操作 9. 数据定义 * CREATE TABLE:在数据库中创建新表
8.5.2 例1:从前一行中返回一个值 203 8.5.3 理解数据行的位移 204 8.5.4 例2:从下一行中返回一个值 204 8.6 First_value和Last_value 205 8.6.1 例子:使用First_value来计算最大值 206 8.6.2 例子:使用...
《Oracle SQL高级编程》是图灵程序设计丛书数据库系列中的一部重要著作,由资深Oracle专家撰写,并得到了OakTable团队的强力推荐。这本书是Oracle开发人员和DBA提升技能、深入理解Oracle SQL不可或缺的参考资料。它...
`WM_CONCAT`函数是Oracle 10g中引入的一个非标准聚合函数,它允许我们在查询中将多行数据合并为一个字符串。例如,如果你有一个包含员工ID和部门的表,你可以使用`WM_CONCAT`来获取每个部门所有员工ID的列表。其基本...
- 多表插入命令可以在单个SQL语句中将一行或多行数据插入到多个表中。 - 这种方法能够有效地处理需要根据某些条件将数据插入到不同表的需求,是最适合当前场景的选择。 - **D. 使用 WITH CHECK OPTION 的插入命令 ...
- **无条件 INSERT ALL**: 用于无条件地将一行或多行数据插入到多个目标表中。 - 示例: 从 `EMPLOYEES` 表中选择 `EMPLOYEE_ID` 大于 200 的员工的 `EMPLOYEE_ID`, `HIRE_DATE`, `SALARY` 和 `MANAGER_ID` 值,并将...
当我们要进行行列互换时,通常涉及到的是将某一列的值转换为行,或者将多行数据合并为一列。以下是一些常见的方法: 1. **使用UNION ALL操作符** 如果你希望将多行数据合并成一列,可以使用UNION ALL。假设我们有...
实例246 PHP中将上传文件转换成RAR文件 320 实例247 PHP中对RAR文件进行解压 321 实例248 PHP中压缩ZIP文件 322 实例249 PHP中解压ZIP文件 323 4.6 目录操作 323 实例250 目录操作汇总 324 实例251 重新定义目录的...
实例246 PHP中将上传文件转换成RAR文件 320 实例247 PHP中对RAR文件进行解压 321 实例248 PHP中压缩ZIP文件 322 实例249 PHP中解压ZIP文件 323 4.6 目录操作 323 实例250 目录操作汇总 324 实例251 重新定义目录的...