你的位置:编程库 >> 资讯 >> DB2 >> db2应用开发 >> 详细内容 在线投稿

使用 DB2 UDB OLAP 函数

发布: 2008-7-01 13:43 |  作者: admin |   查看: 8次

使用 DB2 UDB OLAP 函数

热 荐

【字体:小 大】

使用 DB2 UDB OLAP 函数

作者:- 文章来源:- 点击数:1330 更新时间:2006-4-22

Alexander Kuznetsov

Chicago,IL

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

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

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

打印 | 收藏此页 |  推荐给好友 | 举报
上一篇 下一篇
 

评分:0

发表评论
查看全部回复【已有0位网友发表了看法】