下面的需求是将不仅获取查询的结果集,还要将结果集的SIZE返回。结果集的SIZE是无法通过CURSOR获取的。
 
通常聚合函数在二种情况下,使用默认分组即没有分组。可以直接使用,比如
select 
       COUNT(1) as toalrows
  FROM FTP.NBZZ_KHLR_NEW_201312 a,
       DB2ADMIN.JAF_OM_EMPLOYEE b,
       FTP.ORG_EMP_HISTORY c
 WHERE     a.ZH = '7271010103100076601'
       AND a.OP_ID = b.userid
       AND b.EMPID = c.EMPID
       AND c.HISDATE = '2013-12-31';
 
或者
 
SELECT a.OP_ID,
       a.FHLRHZ,
       c.ORGNAME_LEVEL2,
       c.ORGNAME_LEVEL3,
       c.ORGSEQ,
       a.kmh,
       COUNT(1) as toalrows
  FROM FTP.NBZZ_KHLR_NEW_201312 a,
       DB2ADMIN.JAF_OM_EMPLOYEE b,
       FTP.ORG_EMP_HISTORY c
 WHERE     a.ZH = '7271010103100076601'
       AND a.OP_ID = b.userid
       AND b.EMPID = c.EMPID
       AND c.HISDATE = '2013-12-31';
       
       
35000164 52560.00 客户四部 .citic.1.2221.2266. 1210100    1
35000414 9855.00 客户四部 .citic.1.2221.2266. 1210100    1
35000889 3285.00 客户四部 .citic.1.2221.2266. 1210100    1
 
 
而有些时候需求是查询结果的同时,不想再写一条查询结果集大小的sql. 希望一并能查询出来。OLAP的提供的count(*) over() as nums可以解决。
SELECT a.OP_ID,
       a.FHLRHZ,
       c.ORGNAME_LEVEL2,
       c.ORGNAME_LEVEL3,
       c.ORGSEQ,
       a.kmh,
       COUNT(1) OVER () as toalrows
  FROM FTP.NBZZ_KHLR_NEW_201312 a,
       DB2ADMIN.JAF_OM_EMPLOYEE b,
       FTP.ORG_EMP_HISTORY c
 WHERE     a.ZH = '7271010103100076601'
       AND a.OP_ID = b.userid
       AND b.EMPID = c.EMPID
       AND c.HISDATE = '2013-12-31';
 
 
35000164 52560.00 客户四部 .citic.1.2221.2266. 1210100    3
35000414 9855.00 客户四部 .citic.1.2221.2266. 1210100    3
35000889 3285.00 客户四部 .citic.1.2221.2266. 1210100    3
 
 
OLAP函数参考:http://www.cnblogs.com/Fskjb/archive/2011/02/28/1967429.html

DB2中OLAP函数使用示例的更多相关文章

  1. 关于db2中listagg函数开发中的体验

    一.首先解释一下可能会查询的基础问题: 1.1db2 “with ur”是什么意思: 在DB2中,共有四种隔离级:RS,RR,CS,UR.以下对四种隔离级进行一些描述,同时附上个人做试验的结果.隔离级 ...

  2. DB2中coalesce函数的应用

    在ETL项目中经常会碰到这样的一种情况: 目标表中的某列来源于不同的源数据表A,B,C.如果在A中没有有效的数据则从B中取,如果B中没有则从C中取,如果C中也没有则设置为空值. 遇到这样的情况可能,有 ...

  3. db2中left()函数和right()函数对应oracle中的substr()函数

     DB2 LEFT.RIGHT函数 语法:LEFT(ARG,LENGTH).RIGHT(ARG,LENGTH) LEFT.RIGHT函数返回ARG最左边.右边的LENGTH个字符串,ARG可以是CHA ...

  4. [代码]--db2中left()函数和right()函数对应oracle中的substr()函数

     DB2 LEFT.RIGHT函数 语法:LEFT(ARG,LENGTH).RIGHT(ARG,LENGTH) LEFT.RIGHT函数返回ARG最左边.右边的LENGTH个字符串,ARG可以是CHA ...

  5. DB2函数简单示例

    DB2中的函数原理同其他编程语言中的函数,均为输入几个参数,同时返回一个值. 下面的例子演示一个寻找某一次考试中成绩最好的学生的姓名. 首先,我们新建一个表SCORE用于表示考试,并插入几条数据: D ...

  6. db2 OLAP函数使用

    说起 DB2 在线分析处理,可以用很好很强大来形容.这项功能特别适用于各种统计查询,这些查询用通常的SQL很难实现,或者根本就无发实现.首先,我们从一个简单的例子开始,来一步一步揭开它神秘的面纱,请看 ...

  7. DB2 OLAP函数的使用

    说起 DB2 在线分析处理,可以用很好很强大来形容.这项功能特别适用于各种统计查询,这些查询用通常的SQL很难实现,或者根本就无发实现.首先,我们从一个简单的例子开始,来一步一步揭开它神秘的面纱,请看 ...

  8. Python中split()函数的用法及实际使用示例

    Python中split()函数,通常用于将字符串切片并转换为列表. 一.函数说明: split():语法:str.split(str="",num=string.count(st ...

  9. Shell脚本中使用function(函数)示例

    这篇文章主要介绍了Shell脚本中使用function(函数)示例,本文着重讲解的是如何在shell脚本中使用自定义函数,并给出了两个例子,需要的朋友可以参考下   函数可以在shell script ...

随机推荐

  1. NET 命名规范

    1 ADO.NET 命名规范 数据类型 数据类型简写 标准命名举例 Connection con conNorthwind Command cmd cmdReturnProducts Paramete ...

  2. Linux更改主机名的最简单方法

    之前写过一篇关于CentOS更改主机名的随笔,搞得很复杂,详见修改阿里云CentOS Linux服务器的主机名. 今天在askubuntu上发现一个很简单的方法(How do I change the ...

  3. AutoMapper在ABP框架中的使用说明

    为了说明AutoMapper如何使用,我专门开设了一个专题来讲,如果您还没有查看该专题,请点击这里.既然系统地学习了AutoMapper,那么接下来就是该用它实战的时候了.今天,我们就来揭开AutoM ...

  4. 使用gdb调试Python进程

    使用gdb调试Python进程 有时我们会想调试一个正在运行的Python进程,或者一个Python进程的coredump.例如现在遇到一个mod_wsgi的进程僵死了,不接受请求,想看看究竟是运行到 ...

  5. [转]Sublime Text 2 设置文件详解

    Sublime Text 2是那种让人会一眼就爱上的编辑器,不仅GUI让人眼前一亮,功能更是没的说,拓展性目前来说也完全够用了,网上介绍软件的文章和推荐插件的文章也不少,而且很不错,大家可以去找找自己 ...

  6. 在Mac OS上安装Vagrant和Docker的教程

    转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/128.html?1455808640 当听到很多人在说Docker是多么多 ...

  7. [python爬虫] Selenium定向爬取海量精美图片及搜索引擎杂谈

    我自认为这是自己写过博客中一篇比较优秀的文章,同时也是在深夜凌晨2点满怀着激情和愉悦之心完成的.首先通过这篇文章,你能学到以下几点:        1.可以了解Python简单爬取图片的一些思路和方法 ...

  8. 你应该知道的RPC原理

    你应该知道的RPC原理 在学校期间大家都写过不少程序,比如写个hello world服务类,然后本地调用下,如下所示.这些程序的特点是服务消费方和服务提供方是本地调用关系. 而一旦踏入公司尤其是大型互 ...

  9. GCD使用dispatch_group_notify、dispatch_group_enter、dispatch_group_leave处理多线程同步操作

    一.简介 dispatch_group_enter:通知group,下面的任务马上要放到group中执行了. dispatch_group_leave:通知group,任务完成了,该任务要从group ...

  10. Cocoa编程开发者手册

    Cocoa编程开发者手册(Objective-C权威著作超一流翻译阵容) [美] 奇斯纳尔(Chisnall,D.)  著 霍炬等 译 ISBN 978-7-121-12239-2 2013年7月出版 ...