在项目的开发过程中,我们会遇到一些特殊的业务需求,如接下来讲的业务需求:根据多个字段,如果多个字段相同就把两条数据合并为一条数据,但是两条数据的创建人的追加在一条数据中,返回给前端。

话不多说上图解释该业务

当然也可以通过代码去完成,这次我们将通过写sql的方式解决改业务。

话不多说,上代码,上注释

SELECTmax(oc.instance_number) ,max(oc.description) ,max(oc.details_type) ,max(oc.create_by) ,max(oc.ID),max(bn."name") ,max(bow.create_time) ,max(bw.reach_time) ,string_agg(sur.user_name, ',') ,max((EXTRACT ( DAY FROM ( CURRENT_TIMESTAMP - bw.reach_time ) ) || '天' || EXTRACT ( HOUR FROM ( CURRENT_TIMESTAMP - bw.reach_time ) ) || '小时')) AS "wait_time"
FROMbase_workflow_task bwINNER JOIN object_change oc ON bw.business_instance_id = oc.IDAND bw.approve_type IS NULLAND bw.del_flag = '1'AND oc.del_flag = '1'and oc.create_by = 'admin'and oc.instance_number = 'LC-01-21-0050'LEFT JOIN base_workflow_node bn ON bw.base_workflow_node_id = bn.ID LEFT JOIN base_object_workflow bow ON bw.business_instance_id = bow.business_instance_idLEFT JOIN  sys_user sur  on bw.sys_user_id= sur."id"
GROUP BY oc.instance_number, bn.name//不要被这一长串代码迷晕了眼,其实此处就两行关键代码, string_agg(sur.user_name, ','),GROUP BY oc.instance_number, bn.name
//意思就是通过group by 加上需求字段 进行分组,然后通过string_agg(sur.user_name, ',')将分组的字段都追加在一起,就能完成我们的业务需求
// string_agg(sur.user_name, ',') 聚合函数的讲解,就是将分组之后的数据中括号里的字段全部追加在一起,后面就是分隔符。

使用SQL聚合函数,分组,完成数据合并,字段拼接或者字段追加相关推荐

  1. SQL 聚合函数中的数据过滤

    文章目录 聚合函数中的 CASE 表达式 PostgreSQL/SQLite 中的 FILTER 选项 大家好!我是只谈技术不剪发的 Tony 老师. 今天给大家介绍一下如何在 SQL 聚合函数中进行 ...

  2. SQL 聚合函数之字符串分组合并

    文章目录 Oracle 中的 LISTAGG 函数 MySQL 中的 GROUP_CONCAT 函数 SQL Server 中的 STRING_AGG 函数 PostgreSQL 中的 STRING_ ...

  3. 各数据库SQL查询结果多行数据合并成一行

    SQL查询结果多行数据合并成一行 一.Oracle函数多行数据合并成一行 二.Mysql函数多行数据合并成一行 三.sqlserver函数多行数据合并成一行 四.postgresql函数多行数据合并成 ...

  4. SQL 聚合函数一定要跟group by以及NULL的关系的案例精讲

    SQL 聚合函数与GROUP BY NULL的关系及ALL的使用说明 需求说明 有如下一道SQL题,网友咨询: 1 为啥正确答案是第二项? 2 聚合函数是否一定要跟GROUP BY PARTITION ...

  5. sqlserver函数多行数据合并成一行

    sqlserver函数多行数据合并成一行 SELECTusername,coursename= (STUFF((SELECT ',' + coursenameFROM t_user_courseWHE ...

  6. MySQL数据库——day26 数据库安装,卸载,概念,msq的介绍,安装,连接,DDL,DML,DQL模糊查询,字段控制(别名和运算),排序,聚合函数,分组查询(where和having),分页查询

    学到mysql的时候非常的快,感觉前面的没有很巩固,还是要复习前面的博客 常见的数据库 MySQL , Oracle , SQL Server , SQLite , DB2 , - SQL Serve ...

  7. 第十二章 SQL聚合函数 VARIANCE, VAR_SAMP, VAR_POP

    文章目录 第十二章 SQL聚合函数 VARIANCE, VAR_SAMP, VAR_POP 大纲 参数 描述 当前事务期间所做的更改 示例 第十二章 SQL聚合函数 VARIANCE, VAR_SAM ...

  8. 第五章 SQL聚合函数 %DLIST

    文章目录 第五章 SQL聚合函数 %DLIST 大纲 参数 描述 %DLIST 和 %SelectMode %DLIST和ORDER BY 相关的聚合函数 示例 第五章 SQL聚合函数 %DLIST ...

  9. Maxcompute ODPS SQL 聚合函数

    ODPS SQL 聚合函数 ODPS SQL 聚合函数 1.COUNT:用于计算记录数. SELECT COUNT(*) FROM table_name; --******************** ...

  10. 第十三章 SQL聚合函数 XMLAGG

    文章目录 第十三章 SQL聚合函数 XMLAGG 大纲 参数 描述 XML和XMLAGG XMLAGG和ORDER BY 相关聚合函数 示例 第十三章 SQL聚合函数 XMLAGG 一个聚合函数,它创 ...

最新文章

  1. 用c语言按颜色对图像进行分类,【leetcode C语言实现】75_颜色分类
  2. 缓存核心知识小抄,面试必备,赶紧收藏!
  3. 4.1.2 OS之文件逻辑结构(顺序文件、索引文件、索引顺序文件、多级索引顺序文件)关于数据库的索引如聚簇索引可以看一下索引文件例题的解析,感觉还是可以收获到东西的
  4. BMI指数与体重的关系
  5. mysql的explain中type取值与SQL性能优化的关系
  6. 了解Entity Framework中事务处理
  7. CVPR 2020 | 3D目标检测泛化问题研究
  8. RHEL6 安装ipvsadm-1.26
  9. 如何安装mysql5.7.25_Centos7 yum安装MySQL5.7.25
  10. zhihu spark集群,书籍,论文
  11. androidsettitle方法_在Android应用程序中,Toolbar.setTitle方法无效 - 应用程序名称显示为ti...
  12. AWZ爱伪装常用问题汇总
  13. IE中自动安装根证书
  14. flink生成Watermark之WatermarkStrategy
  15. CSS中的clear属性
  16. 优秀的加密方案-软件加密技巧
  17. 李开复:从毛遂自荐到萌生去意
  18. 数字图像处理实验——图片压缩与解压(opencv)
  19. 国内的博客没几个能用,blogbus的功能和技术看来是不错的
  20. ubuntu 16.04 LTS 安装搜狗拼音输入法步骤详解

热门文章

  1. 模拟键盘对应的keycode
  2. 奖励的效应:德西效应
  3. EXCEL如何分组排序,如何标记序,如何取指定的第n笔?
  4. 计算机科学与技术专业的门户网站,2018计算机科学与技术专业怎么样?就业方向与就业前景分析...
  5. 本地服务器json文件,从本地ftp服务器读取Json文件
  6. 按Home键后重新进入app又重新启动问题解决
  7. 浅谈Qt的编译方式:qmake/cmake/qbs及qbs被弃用的原因
  8. (exynos4412)Tiny4412裸机开发-点亮LED灯
  9. GX Works2、MX OPC 6.04以及组态王6.55联合模拟仿真
  10. 你写的项目管理周报有没有灵魂?【管理有度6】