WEB开发网
开发学院数据库DB2 使用DB2 UDB OLAP函数 阅读

使用DB2 UDB OLAP函数

 2008-09-03 16:28:17 来源:WEB开发网   
核心提示:使用 OLAP 函数的一些实用技巧 在线分析处理(online analytical processing,OLAP)函数非常灵活,使用DB2 UDB OLAP函数,也很强大,通过使用这些函数,也会提供连续数,例如,您可以为一些问题找到简单的解决方案,而这些问题本来要么是要迭代一个或者多个游标

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

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

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

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

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

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

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

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

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

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

  selectROW_NUMBER()OVER(),TABNAMEFROMSYSCAT.TABLESwhereTABSCHEMA=’DB2ADMIN’ 
    
1TABNAME 
    -------------------------------------------
    1CONSECUTIVE_NUMS
    2DATES
    3EXPLAIN_ARGUMENT
    4EXPLAIN_INSTANCE
    5EXPLAIN_OBJECT
    6EXPLAIN_OPERATOR
    7EXPLAIN_PREDICATE
    8EXPLAIN_STATEMENT
    9EXPLAIN_STREAM
    10SALES_DETAIL
    11SALES_DETAIL_CLS
    11record(s)selected.

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

1 2 3 4 5 6  下一页

Tags:使用 DB UDB

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接