oracle分组后合并其中一个字段

select m.parent_id,
               m.start_date,
               wmsys.wm_concat( m.cleck_name) As name,
               wmsys.wm_concat( m.userId) As userId,
               max(rowid) as rid
          from (select t.parent_id,
                       to_char(t.start_date, 'yyyy-MM-dd') start_date,
                       s.cleck_name,
                       s.user_orderby,
                       t.sche_type,
                       s.id as userId
                  from oa_assistant_schedulerplan t, s_user s
                 where t.user_id = s.id(+)
                   and t.sche_type != '1'
                   and t.parent_id is not null
                 order by s.user_orderby) m

         group by m.parent_id, m.start_date

parent_idstart_date分组后合并每个组的cleck_nameuserId

另一个实例:

来自http://blog.sina.com.cn/s/blog_56d8ea900100zlwv.html

数据库的结构如下:

no 

    item
01      AA
01      BB
02      CC
02      DD
02      EE
03      FF
04      GG
04      HH

希望将no相同的列整合为一条记录如下
no      items
01      AA,BB
02      CC,DD,EE
03      FF
04      GG,HH


MYSQL中,直接有group_contact函数了,如下:
  select id,group_contact(items)  from TABLE group by id

而oracle中,对应的有wm_contact,摘抄例子如下:
select id,wmsys.wm_concat(items) name from table
group by id;
 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle中,可以使用ROW_NUMBER()函数和PARTITION BY子句来对数据进行分组和排序。引用\[1\]中的示例代码展示了如何使用ROW_NUMBER()函数和PARTITION BY子句来对表中的数据进行分组,并为每个分组的记录标记序号。通过在子查询中使用ROW_NUMBER()函数,可以为每个分组的记录添加一个序号,并使用WHERE子句筛选出序号小于3的记录。 另外,引用\[2\]中的示例代码展示了如何使用wm_concat()函数来将同一分组内的多个值合并一个字符串。在这个示例中,使用ROW_NUMBER()函数和PARTITION BY子句对数据进行分组,并使用wm_concat()函数将同一分组内的userName值合并一个字符串。 最后,引用\[3\]中的示例代码展示了如何使用ROW_NUMBER()函数和PARTITION BY子句对数据进行分组,并使用MAX函数和DECODE函数将同一分组内的多个属性值合并在一条记录中。通过使用ROW_NUMBER()函数和PARTITION BY子句,可以为每个分组的记录添加一个序号,然后使用MAX函数和DECODE函数将不同序号对应的属性值合并在一条记录中。 综上所述,Oracle中可以使用ROW_NUMBER()函数和PARTITION BY子句对数据进行分组和排序,并使用不同的函数(如wm_concat()、MAX和DECODE)将同一分组内的多个值合并在一条记录中。 #### 引用[.reference_title] - *1* *3* [oracle数据库分组,把多条数据合并成一条数据,分几个字段](https://blog.csdn.net/qq_42217505/article/details/104405425)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [oracle 分组合并字段,每组行显示](https://blog.csdn.net/weixin_40841731/article/details/126137252)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值