使用DB2 UDB OLAP函数

使用OLAP函数的一些实用技巧

在线分析处理(online analytical processing,OLAP)函数非常灵活,也很强大。通过使用这些函数,您可以为一些问题找到简单的解决方案,而这些问题本来要么是要迭代一个或者多个游标,要么是要进行递归。在其他某些情况下,编写查询时,使用 OLAP 函数或辅助表比起不使用它们来要容易得多。

本文没有对 OLAP 函数作什么描述,而是描述了实际生活中的一些情况,在这些情况中,往往是通过使用 OLAP 函数得出了简单的解决方案。

使用连续数或日期生成辅助表

辅助表不包含用户的数据。相反,这些表用于简化查询的编写。我们将使用两个辅助表:

顺序表,即连续整数的列表,从 1 开始,以某个最大数结束。

日历表,即介于开始日期和结束日期之间的连续日期的列表。

本章中,我们将学习如何使用 OLAP 函数填充辅助表。

注意:Joe Celko 撰写的“SQL for Smarties”一书对辅助表作了详细讨论。

让我们创建并填充一个顺序表。使用一个 OLAP 函数 ROW_NUMBER() 为结果集中的各行提供连续数(consecutive number),像这样:

SELECT ROW_NUMBER() OVER(), TABNAME FROM SYSCAT.TABLES WHERE TABSCHEMA="DB2ADMIN"
1TABNAME
-------------------------------------------
1 CONSECUTIVE_NUMS
2 DATES
3 EXPLAIN_ARGUMENT
4 EXPLAIN_INSTANCE
5 EXPLAIN_OBJECT
6 EXPLAIN_OPERATOR
7 EXPLAIN_PREDICATE
8 EXPLAIN_STATEMENT
9 EXPLAIN_STREAM
10 SALES_DETAIL
11 SALES_DETAIL_CLS
11 record(s) selected.

注意,即使没有被选中的列,也会提供连续数。例如,让我们使用从 1 开始的连续数来填充一个表。方法如下:

CREATE TABLE NUMBER_SEQ(NUM INT NOT NULL);
INSERT INTO NUMBER_SEQ SELECT ROW_NUMBER() OVER() FROM
SYSCAT.COLUMNS;

时间: 2024-09-19 09:54:12

使用DB2 UDB OLAP函数的相关文章

DB2的olap函数详解(原创)

DB2 olap函数概述  在线分析处理函数(OLAP)是DB2中扩展了关系模型.使关系模型能够理解行集合内的排序方式的重要函数之一.典型的 DB2在线分析处理的格式包括两部分:函数部分和OVER表达式部分. 函数部分包括:ROW_NUMBER.RANK.DENSE_RANK.FIRST_VALUE.LAST_VALUE.LAG.LEAD.COUNT.MIN.MAX.AVG.SUM over表达式部分在示例中进行介绍,这里不具体介绍语法OLAP函数介绍      SELECT          

DB2用户定义函数实现多种语言的排序

当在 DB2 UDB 数据库中存储多语种数据时,Unicode 往往是惟一一种能够适应整个数据范围的编码.DB2 可以存储和处理 Unicode 数据,但是它的排序功能只限于二进制排序和三种文化排序.另外,一个数据库只能有一种排序规则,这是在创建数据库时决定的.对于需要支持多种语言的用户和数据的数据库,这些排序限制是一个明显的难题. IBM 创建了一个用于管理 Unicode 数据的函数库,称为 ICU(International Components for Unicode).这个库为 C 和

DB2 UDB V8.1管理学习笔记(三)_DB2

正在看的db2教程是:DB2 UDB V8.1管理学习笔记(三).强制断开已有连接,停止实例并删除.  $ db2idrop -f instance_name 用于在UNIX下迁移实例. $ db2imigr instance_name 更新实例,用于实例获得一些新的产品选项或修订包的访问权. $ db2iupdt instance_name 获取当前所处的实例. $ db2 get instance 当更新实例级别或数据库级别的参数后,有些可以立即生效,有些需要重新启动实例才可生效.immed

OLAP函数语法的总结

函数|语法 OLAP函数语法的总结 ORACLE OLAP 函数      最近这个东东用得特别多,总结了一下 . 语法: FUNCTION_NAME(,,...)         OVER        () OLAP函数语法四个部分:1.function本身 用于对窗口中的数据进行操作:2.partitioning clause 用于将结果集分区:3.order by clause 用于对分区中的数据进行排序:4.windowing clause 用于定义function在其上操作的行的集合

将Siebel 7电子商务应用程序从DB2 UDB V8迁移到DB2 9

本文将引领您完成 Siebel 7 数据库环境从 DB2 UDB Version 8 到 DB2 9 的升级.您将了解一 些必要的步骤以及完成迁移过程所需的工具和命令. 本文首先介绍了 DB2 9 中的一些新特性,并 展示了 Siebel 应用程序如何利用这些特性.本文详述了 UNIX 和 Windows 操作系统在预迁 移和实际迁移过程中的工作,最后介绍完成迁移后需要执行的步骤. DB2 9 中的新特性 pureXML:DB2 9 天生就支持 XML 数据存储.这使得可以将格式良好的 XML

实例讲解如何在DB2 UDB中监控死锁的发生

前言:这篇文章通过具体的实例阐述了如何在DB2 UDB 中监控死锁的发生.在DB2 UDB中有两种类型的监控器:快照监控器和事件监控器.快照顾名思义就是数据库连续状态下的一个切面,通过快照监控器,你可以很方便地查看当前连接的应用程序,当前等待的锁,当前的死锁,以及正在执行的SQL语句,同时你可以查看缓冲区,表和表空间的用法.假如保存历史数据,并且能够做出比较,对于分析数据库的并发性能有很大的帮助. 但是我们并不能猜测什么时候发生死锁,所以假如有一个后台程序能够一直监控数据库的活动,记录下所有的死

为DB2 UDB for Linux, UNIX, and Windows提供Unicode支持的实用方法

简介 当今的应用程序常常设计为供国际化使用.这些应用程序可能需要处理不同语言的字符串 .而 Unicode 正是一种与语言无关的字符表示标准. 由于 Java 编程语言已经在内部使用 Unicode 来表示字符,所以国际化应用程序的开发已经容易多了.但是,不能只考虑应用程序端.后端的 数据库也必须能够处理 Unicode 字符.本文将讨论几个主题,帮助开发人员实现供国际化使用的 DB2 UDB 应用程序. DB2 中支持何种 Unicode 标准? 只有一种 Unicode 标准,但是存在不同的

DB2 UDB安全性:使用 GSS-API安全机制(SPKM/LIPKEY)的安全插件

简介 DB2 UDB 提供一种框架,用于编写定制的安全插件,管理员可使用这些插件进行 DB2 UDB 身份验证. 该框架是在 DB2 UDB V8.2 中引入的,也支持基于通用安全服务应用程序编程接口(Generic Security Service Application Programming Interface,GSS-API)的插件身份验证. 许多 DB2 UDB 管理员利用 GSS-API 插件进行基于 Kerberos 的身份验证.由于 NFS V4(Network File Sys

用于监控DB2实例和数据库的新的DB2 UDB工具

简介 DB2 UDB V8.2 带来了一种新工具称为 db2pd,用于收集 DB2 实例和数据库的统计信息.与 Informix Dynamic Server 的 onstat 工具类似,db2pd 提供了 20 多个选项显示关于数据库事务.表空间.表统计信息.动态 SQL.数据库配置和其他很多数据库细节的信息.单个 db2pd 命令可以检索多个领域的信息,并把结果保存到文件中.也可以在特定时期内调用该工具一定的次数,帮助您了解随着时间的变化数据库中的变动情况.该工具可用于故障检修.问题确定.数