Oracle OLAP 表达式/分析函数和 NA 值

Posted

技术标签:

【中文标题】Oracle OLAP 表达式/分析函数和 NA 值【英文标题】:Oracle OLAP Expression/Analytical Functions and NA Values 【发布时间】:2012-08-22 20:50:44 【问题描述】:

此问题特定于 NA 值和 Oracle OLAP 表达式语法。

http://docs.oracle.com/cd/E11882_01/olap.112/e23381.pdf

我正在尝试执行一些简单的 avg 和 sum 计算,并且在某些特定情况下我会有 NA 值。它似乎不作为表达式语法的一部分存在,但是否有执行这些计算之一并跳过这些值?

【问题讨论】:

【参考方案1】:

我认为您正在寻找的可能是NASKIP 和NASKIP2 选项。这些控制如何在聚合函数 (NASKIP) 和加法/减法 (NASKIP2) 中处理 NA 值。

例如,这里有一些示例代码来说明这个想法:

" Set up some objects, and see how they look"
dfn test dimension text
maintain test add 'V1\nV2\nV3' " add some values"
dfn num.t variable integer <test>
" set the first one to 3, and leave the others null"
num.t(test 'V1') = 3           
report num.t

" See how the options work"
naskip=yes
naskip2=yes
report naskip, naskip2, total(num.t), total(num.t)+num.t(test 'V2') 
" Will all be 3"
naskip2=no
report naskip, naskip2, total(num.t), total(num.t)+num.t(test 'V2') 
" First 3, second NA"
naskip=no
report total(num.t), total(num.t)+num.t(test 'V2')                  
" All NA"

由于 Oracle OLAP 对 cme​​ts 使用引号,因此代码看起来有点奇怪,但我已尝试将这种影响降到最低。如果这不是您要查看的内容,请发布一些示例,我会看看是否可以提出其他任何建议。

【讨论】:

【参考方案2】:

这是一个很好的reference 解释如何在分析函数中使用空值。

此外,您始终可以在查询中添加:“where is not null”以明确排除空值。

【讨论】:

不能在 Olap 表达式语法中使用 not null。如果可以的话,我认为它没有被记录在案。粘贴的链接适用于常规 SQL。这是不同的。 @davewolfs:你是对的。我在考虑一般意义上的 OLAP(即使在仔细阅读您的链接时,它仍然没有点击这些以某种方式不同)。

以上是关于Oracle OLAP 表达式/分析函数和 NA 值的主要内容,如果未能解决你的问题,请参考以下文章

关于OLAP(联机分析)

Oracle数据库模型(OLAP/OLTP)

具有分区、OLAP、高级分析和真正的应用程序测试选项”

如何为 OLAP 多维数据集部署 Oracle 维度表

Oracle分析函数之Lag和Lead()使用

Oracle分析函数列表分享