`
zhangyou1010
  • 浏览: 299655 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

oracle sql 合并 分组 聚合函数

阅读更多
工作中有一需求,要根据多个表的数据统计情况来更新另外一个表中的某个字段,折腾了会才写出如下sql:
 --最终版更新语句
 update moka_user_usage t
    set portfolionumber = (select ta.pnum
                             from (select sum(pnum) pnum, pomuid
                                     from ((select count(om.userid) pnum,
                                                   om.userid pomuid
                                              from MOKA_PORTFOLIO          p,
                                                   MOKA_PORTFOLIO_CATEGORY c,
                                                   om_user                 om
                                             where p.type_id = c.type_id and
                                                   p.verify_flag = '1' and
                                                   p.open_flag = '0' and
                                                   om.userid = p.user_id
                                            -- and t.userid = om_user.userid
                                             group by om.userid) union all
                                            select *
                                              from (select count(mom.username) mctnum,
                                                           mom.userid mctuid
                                                      from mct_works_type_mapping mtp,
                                                           mct_works              mct,
                                                           om_user                mom
                                                     where mtp.works_id =
                                                           mct.works_id and
                                                           mct.cp_id =
                                                           mom.username and
                                                           mct.state = '1'
                                                     group by mom.userid))
                                             group by pomuid
                                   ) ta
                            where ta.pomuid = t.userid)
                            




当然这个和业务相关,我贴出来只想记录下。

在写这个sql时,遇到个小问题,不知该如何解决,问题意思大概如下:

有两个表ta(num1,id1) tb(num2,id2)

ta表数据如下:
NUM1 ID1

1 100
2 101
5 107
4 108
9 210

tb的数据如下:

NUM2 ID2
3 100
8 104
5 301
10 101
20 710
45 107

要将ta和tb中的数据合并,如果ta和tb中id相同的话,则把num1和num2相加,开始没想要分组,

其实很简单,sql如下:

  
select sum(num1), id1
     from (select *
             from TESTA a
           Union All
           select * from TESTB b)
    group by id1


顺便温故了下sql,union all 为合并两个结果集,不会合并重复的行,而union 则会合并重复的行。
分享到:
评论

相关推荐

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    8.4.1 跨越整个分区的聚合函数 201 8.4.2 细粒度窗口声明 201 8.4.3 默认窗口声明 202 8.5 Lead和Lag 202 8.5.1 语法和排序 202 8.5.2 例1:从前一行中返回一个值 203 8.5.3 理解数据行的位移 204 8.5.4 例2...

    Oracle 多行记录合并_连接_聚合字符串的几种方法_oracle_脚本之家1

    1.被集合字段范围小且固定型 灵活性 性能 难度 2.固定表固定字段函数法 灵活性 性能 难度 3.灵活表函数法 灵活性 性能 难度 4.一条SQL法 灵活性

    Oracle 多行记录合并/连接/聚合字符串的几种方法

    什么是合并多行字符串(连接字符串)呢,例如: SQL> desc test; Name Type Nullable Default Comments ——- ———— ——– ——- ——– COUNTRY VARCHAR2(20) Y CITY VARCHAR2(20) Y SQL> select * from test; ...

    非常全的oracle文档

    19.3. 聚合函数 109 19.4. 日期时间函数 110 19.5. 转换函数 111 19.6. 日期时间格式参数 113 19.7. 分析函数 114 19.8. 通用函数 115 19.9. GROUP BY子句 116 19.10. HAVING子句 117 19.11. 实用方法 118 19.12. ...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    第三章 Sql查询与函数 一、 SQL概述 SQL(Structured Query Language)结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。同时也是数据库脚本文件的扩展名。  SQL...

    Oracle P/L SQL实现发送Email、浏览网页等网络操作功能

    使用聚合函数实现 多行合并 Drop Type Strcat_type; Drop Function f_StrCat; Drop Package UTL_INet; Variable ls_ObjectName VarChar2(128); Begin Select Sequence_Name Into :ls_ObjectName From User_...

    2009达内SQL学习笔记

    所有的聚合函数都可以使用。如果指定列名,则DISTINCT只能用于COUNT(列名),DISTINCT不能用于COUNT(*)。 如:Select Distinct name From s_dept; Select Distinct dept_id,title From s_emp; 文本处理: TRIM()/...

    C#开发经验技巧宝典

    0890 如何使用聚合函数First或Last 523 19.7 子查询与连接查询 523 0891 union与连接之间的区别 523 0892 如何应用IN查询表中的记录信息 524 0893 使用一个单行的子查询来更新列 524 0894 使用IN引入子...

    C#程序开发范例宝典(第2版).part13

    实例002 菜单动态合并 3 实例003 像开始菜单一样漂亮的菜单 4 实例004 任务栏托盘菜单 4 实例005 可以拉伸的菜单界面 5 实例006 级联菜单 6 1.2 工具栏设计 6 实例007 带背景的工具栏 7 实例008 浮动工具栏 7...

    多形式报表源码

    多形式报表源码 ...同时,提供丰富的内建函数,包括文本函数、日期和时间函数、数学函数、检查函数、程序流函数、类型转换函数、聚合函数及各种特殊处理函数(如金额大写)等。 9.界面美观、大方。

    C#.net_经典编程例子400个

    第1章 窗体与界面设计 1 1.1 菜单应用实例 2 实例001 带历史信息的菜单 2 实例002 菜单动态合并 3 实例003 像开始菜单一样漂亮的菜单 4 实例004 任务栏托盘菜单 5 实例005 可以拉伸...

    scr.Report 多形式报表源码

    scr.Report控件(广源报表控件)实现... 同时,提供丰富的内建函数,包括文本函数、日期和时间函数、数学函数、检查函数、程序流函数、类型转换函数、聚合函数及各种特殊处理函数(如金额大写)等。 9.界面美观、大方。

    SQL语法大全

    SQL语法大全 SQL语法大全 1. ASP与Access数据库连接: dim conn,mdbfile mdbfile=server.mappath("数据库名称.mdb") set conn=server.createobject("adodb.connection") conn.open "driver={microsoft access ...

    Report多形式报表源码

    多形式报表源码 ... 同时,提供丰富的内建函数,包括文本函数、日期和时间函数、数学函数、检查函数、程序流函数、类型转换函数、聚合函数及各种特殊处理函数(如金额大写)等。 9.界面美观、大方。

    多形式报表源码 Gscr.Report控件

    多形式报表源码 ... 同时,提供丰富的内建函数,包括文本函数、日期和时间函数、数学函数、检查函数、程序流函数、类型转换函数、聚合函数及各种特殊处理函数(如金额大写)等。 9.界面美观、大方。

    报表源码V2.0DotNet(C#,VB)

    此源码包括CSharp、VB.net报表代码... 同时,提供丰富的内建函数,包括文本函数、日期和时间函数、数学函数、检查函数、程序流函数、类型转换函数、聚合函数及各种特殊处理函数(如金额大写)等。 9.界面美观、大方。

    C#程序开发范例宝典(第2版).part08

    实例002 菜单动态合并 3 实例003 像开始菜单一样漂亮的菜单 4 实例004 任务栏托盘菜单 4 实例005 可以拉伸的菜单界面 5 实例006 级联菜单 6 1.2 工具栏设计 6 实例007 带背景的工具栏 7 实例008 浮动工具栏 7...

    C#程序开发范例宝典(第2版).part02

    实例002 菜单动态合并 3 实例003 像开始菜单一样漂亮的菜单 4 实例004 任务栏托盘菜单 4 实例005 可以拉伸的菜单界面 5 实例006 级联菜单 6 1.2 工具栏设计 6 实例007 带背景的工具栏 7 实例008 浮动工具栏 7...

Global site tag (gtag.js) - Google Analytics