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

时间:2012-08-22 20:50:45

标签: sql oracle olap cube

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

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

我正在尝试执行一些简单的平均和总和计算,并且在某些特定情况下我会有NA值。它似乎不是作为表达式语法的一部分存在,但无论如何都要执行其中一个计算并跳过这些值?

2 个答案:

答案 0 :(得分:2)

我认为您正在寻找的是NASKIPNASKIP2选项。这些控制如何在聚合函数(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使用引号进行注释,代码看起来有点奇怪,但我试图将效果降至最低。如果这不是您正在查看的内容,请发布一些示例,我会看看是否可以提出其他任何内容。

答案 1 :(得分:-1)

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

此外,您始终可以添加:&#34; where not not null&#34;查询以明确排除空值。