当使用特定对象时,您可以创建随这些对象一起保存的其他对象。
当随其他对象保存某个对象时,该对象会以“内嵌”方式保存。您可以按内嵌方式保存过滤器、组和计算项。例如,您可以创建某个组作为分析的一部分。当保存分析时,该组将以“内嵌”方式保存或随分析一起保存。
除以内嵌方式保存这些对象以外,您还可以将这些对象作为单独的对象随主题区域一起保存在 Oracle BI 表示目录中。当单独保存对象时,该对象即为“命名的”对象。命名的对象提供可重用性,因为您可以创建一个对象,并多次将其用于任何分析、仪表盘 (适用于过滤器) 或包含在命名的对象中指定的列的仪表盘页 (适用于过滤器)。当更新并保存命名的对象时,这些更新立即应用于使用该命名对象的所有对象。
例如,在以内嵌方式随分析一起保存组之后,您可以将该组作为分析的自身对象保存在目录中。然后,您可以从“目录”窗格将命名的组应用于其他分析。
命名过滤器、组和计算项通常保存到其相关主题区域文件夹中。
通过将对象保存到主题区域文件夹,您可以确保在为同一主题区域创建分析时可以使用这些对象。
保存在 /My Folders 文件夹中的命名的对象仅供您使用。保存在 /Shared Folders 文件夹中的对象可供有权访问该文件夹的其他用户使用。如果 /My Folders 文件夹或 /Shared Folders 文件夹中不存在主题区域文件夹,则会自动创建它。当保存对象时,“另存为”对话框显示指向 /My Folders/Subject Area Contents/<主题区域> 的默认保存路径。但是,该对话框的“文件夹”区域仍然继续显示目录中主题区域文件夹的所有实例。
可以将过滤器保存为内嵌过滤器或命名过滤器。
在“分析”编辑器的“标准”选项卡的“过滤器”窗格中创建内嵌过滤器时,您可以选择性地将此内嵌过滤器保存为命名过滤器。此外,还可以在分析级别创建命名过滤器,或者作为单独的对象在全局标题中创建命名过滤器。
命名过滤器可以过滤嵌入到一个仪表盘中的全部或部分分析,或者过滤嵌入到同一仪表盘页的全部或部分分析。
通过保存组和计算项可以在应用程序中重用这些函数。
您可以将组和计算项保存为内嵌或命名对象:
如果在编辑和保存视图的过程中或者在复合布局中工作的过程中创建组或计算项,则该组或计算项将以内嵌方式随分析一同保存。
当在“选择步骤”窗格中工作时:
您可以在目录内将步骤中的组或计算项保存为命名的对象。
您可以将一组步骤或生成的列成员列表保存为命名的对象。如果其中一个步骤包含计算项,则不能将一组步骤保存为组。
有关将已保存组添加到分析的信息,请参阅将组添加到其他分析。
要将计算项或组作为命名的对象保存到目录,请执行以下操作:
显示“选择步骤”窗格。
单击计算项或组的链接,然后单击将计算项另存为或将组另存为以便显示“另存为”对话框。
完成此对话框以便将对象保存到目录。
要将一组步骤作为组保存到目录,请执行以下操作:
显示“选择步骤”窗格。
单击列名最右侧的保存选择步骤按钮。
完成“保存选择步骤”对话框以便将组作为对象保存到目录。
使用过滤器和选择步骤可以限制运行分析时显示的结果,以使结果回答某个特定问题。
过滤器和选择步骤与为分析选择的列一起确定结果包含的内容。根据过滤器和选择步骤,仅显示与标准匹配的那些结果。例如,根据您工作的行业,您可以使用过滤器和选择步骤了解前十个表现最佳人员、特定品牌的销售额 (美元) 以及利润最大的客户等。
提示是另一种过滤器,可应用于仪表盘中的所有项。可使用提示在运行时完成选择步骤和过滤器。有关详细信息,请参阅在仪表盘和分析中进行提示。
Oracle BI 企业版提供了过滤器视图和选择步骤视图,可以将这些视图添加到分析中以便显示应用到分析的任意过滤器或选择步骤。添加这些视图可以帮助用户了解在分析中显示的信息。有关如何将视图添加到分析的详细信息,请参阅添加在仪表盘中显示的视图。
过滤器和选择步骤按照列级别进行应用,并提供了两种方法来限制分析中的数据。
始终先对列应用过滤器,然后再应用任何选择步骤。步骤按其指定顺序进行应用。过滤器和选择步骤在诸多方面都有所不同。
过滤器
您可以直接将过滤器应用于属性列和度量列。必须在聚合查询之前应用过滤器,过滤器可影响查询,从而影响生成的度量值。例如,假定在您的成员列表中,聚合总和为 100。经过一段时间后,将有更多的成员符合过滤标准,并在过滤时保留,这会将聚合总和增加到 200。
选择步骤
选择步骤在聚合查询之后应用,并且仅影响显示的成员,而不会影响生成的聚合值。例如,假定在您的分层成员列表中,聚合总和为 100。如果您使用选择步骤删除了某个成员,聚合总和将保留为 100。
您可以为属性列和分层列创建选择步骤。选择步骤基于各个列,且不能跨多个列。由于属性列没有聚合成员,因此,对属性列使用选择步骤和过滤器并不像对分层列使用选择步骤和过滤器那样特殊。当在“选择步骤”窗格中显示度量列时,无法为度量列创建步骤,因此步骤不会影响度量列。度量用于为属性列和分层列创建条件步骤,例如,大于 100 万美元的销售额。
在指定要包含在分析中的数据成员时,可以从数据源创建数据选择。
每个选择为特定列 (例如“Product”或“Geography”) 的一组成员指定标准。每个选择由一个或多个步骤构成。步骤是影响选择的指令,例如添加其值包含文本 ABC
的 Product 成员。执行步骤的顺序也会影响数据的选择。每个步骤以递增方式作用于以前步骤的结果,而不是作用于该列的所有成员。
可以在“选择步骤”窗格中查看这些选择步骤。使用以下方法创建步骤:
在向分析添加列时,将自动创建一个以所有成员开始的选择步骤,除非您明确添加特定成员。在拖放“结果”选项卡中的列成员以将其添加到分析时,也会自动创建步骤。例如,假设将 FY2007 和 FY2008 成员从“Year”分层列拖放到数据透视表。这将创建选择步骤添加 FY2007、FY2008。
在添加组和计算项时,将自动创建步骤。
当您使用右键单击交互 (例如,添加相关项或仅保留) 以缩小特定分层列或属性列的数据选择范围时,将自动创建步骤。要删除这些选择步骤,请使用诸如删除组或删除计算项等右键单击交互。有关其他信息,请参阅视图中的右键单击交互。
要细化特定分层列或属性列的数据选择,可以使用“选择步骤”窗格直接创建步骤。可以从各个位置显示“选择步骤”窗格,这些位置包括“结果”选项卡、“标准”选项卡和某些视图编辑器。
选择步骤为以下任一类型:
显式成员列表 - 这种步骤可包含列的成员列表,例如 Boston、New York、Kansas 和 South。对于分层列,成员可以来自不同的层次级别。对于属性列,成员仅来自该列。
条件步骤 - 这种步骤可以指定根据条件从列选择成员,它可以属于各种类型之一,包括基于度量或前/后值。此成员列表是动态的,在运行时确定。
基于层次步骤 - 这种步骤面向分层列,可用于选择按其选择成员的关系类型。可以选择系列关系 (例如对象的子级或父级)、特定层次级别 (仅限基于级别的层次) 或级别关系 (仅限基于级别的层次)。
组和计算项 - 这种步骤可包含组或计算项。组和计算项只能用于“添加”步骤;它们不能用于“仅保留”或“删除”步骤。
有关信息,请参阅使用组和计算项。
注:
使用选择步骤时,如果在分层列中搜索非文本 (例如,日期或时间) 成员,搜索将不会生成任何结果。可以在“选择步骤”窗格中创建步骤,该窗格可从不同位置显示。
创建一个选择步骤以提供有关指定从数据源中选择数据的标准的说明。在将列添加到分析时,会添加隐式以所有成员开始步骤。“全部”表示应用过滤器后列的所有成员。
例如,可以创建一个步骤来指定针对 Office 列中的以下成员的标准:Baltimore、Austin 和 Athens。
在“结果”选项卡中创建选择步骤可以让用户选择对其最重要的数据。
使用右键单击交互 (例如,添加相关项或仅保留) 以缩小视图中的特定分层列或属性列的数据选择范围时,将自动创建选择步骤。请参阅视图中的右键单击交互。
将选择步骤添加到分析中之后,可以转到“分析”编辑器的“结果”选项卡并将选择步骤视图添加到分析中。如果添加选择步骤视图,则在运行时,用户可以查看应用到分析的选择步骤。有关添加选择步骤视图的详细信息,请参阅“结果”选项卡的“选择步骤”编辑器。
如果资料档案库配置了双列,则可以在双列上创建选择步骤。
要在双列上创建选择步骤,请选择该列的显示值,这将使用与这些显示值相对应的代码值自动计算出该步骤。
如果使用双列,请谨慎使用“新建计算项”对话框。您可能会在计算项的定制公式中包含一个位置运算符 (例如 $1 指定数据集中第一行的列)。如果包含位置运算符,则在计算公式时,不能将显示值映射到代码值。
有关双列的信息,请参阅了解双列功能。
使用以下过程打开并编辑保存的过滤器。
如果编辑和保存命名过滤器,则对过滤器所做的更改将传播到使用了该过滤器的所有位置。
使用此 SQL 函数可以添加非标准过滤器。
此部分提供下列主题说明如何使用 EVALUATE_PREDICATE 函数:
有关此函数的详细信息,请参阅《Logical SQL Reference Guide for Oracle Business Intelligence Enterprise Edition》。
您可以添加 EVALUATE_PREDICATE 函数作为内嵌过滤器子句。
您不能将此函数与分层列配合使用。当您无法使用 Oracle BI EE 过滤器运算符创建相应过滤器子句时,可以使用此函数。此函数旨在用于返回布尔类型的数据库函数,并且只能用于 SQL 函数。并非在所有多维数据源中都支持 EVALUATE_PREDICATE。此外,EVALUATE_PREDICATE 无法与 XML 数据源配合使用。
要添加 EVALUATE_PREDICATE 函数作为内嵌过滤器子句,必须已由管理员授予您 Add EVALUATE_PREDICATE 函数权限。
示例
以下示例演示如何使用 EVALUATE_PREDICATE 函数。此示例要求 Products.P4 Brand 值大于 6 个字符。运行此函数后,此示例返回 P4 Brand 列中数据长度大于 6 个字符的所有行(例如,BizTech 和 HomeView)。
SELECT 0 s_0, "A - Sample Sales"."Products"."P3 LOB s_1, "A - Sample Sales"."Products"."P4 Brand" s_2, "A - Sample Sales"."Base Facts"."1- Revenue" s_3 FROM "A - Sample Sales" Where EVALUATE_PREDICATE('length(%1)>6',"A - Sample Sales"."Products"."P4 Brand"). ORDER BY 1,2,3
此产品介绍如何将 EVALUATE_PREDICATE 函数添加到内嵌过滤器。
请注意,您不能将此函数与分层列结合使用。有关详细信息,请参阅如何配合使用 EVALUATE_PREDICATE 函数和过滤器?和《Logical SQL Reference Guide for Oracle Business Intelligence Enterprise Edition》。
如果您希望过滤分析中的数据,则可以应用任意命名过滤器。
使用下面的过程将命名过滤器应用到分析。
通过使用 AND 和 OR 布尔运算符对列过滤器进行组合和分组,您无需了解 SQL 语句便可创建复杂过滤器。
通过分组或组合列过滤器,可以确定 Oracle BI EE 过滤分析的优先级。
您可以创建和编辑逻辑 SQL WHERE 子句,以便用作过滤器。
虽然一般不需要此功能,但此功能适用于需要高级过滤功能的用户。有关 SQL 子句的说明,请参阅《Logical SQL Reference Guide for Oracle Business Intelligence Enterprise Edition》。
注:
在将过滤器转换为 SQL 语句后,您只能在“SQL 高级过滤器”对话框中将过滤器项作为 SQL 语句进行查看和编辑。您无法继续在“编辑过滤器”对话框中查看和编辑过滤器。计算度量派生自其他度量,并且是使用公式创建的。
要创建计算度量,请执行以下操作:
执行以下操作之一:
要为复合布局中包含列的数据视图创建计算度量,请单击“分析”编辑器:“结果”选项卡上的新建计算度量按钮。
要为复合布局中的特定数据视图创建计算度量,请编辑特定数据视图,然后单击“结果”选项卡的“数据视图”编辑器上的新建计算度量按钮。
注:
无法将计算度量添加到直接数据库查询或组合请求。完成“新建计算度量”对话框。有关列公式的信息,请参阅编辑列公式。
单击确定按钮。
要编辑计算度量,请执行以下操作:
可以在“分析”编辑器的“标准”选项卡中编辑计算度量。
您可以创建一个组或计算项,以便作为热矩阵、表、数据透视表、格状图或图形中数据的一种显示方式。
通过组和计算项,您可以在数据源中不存在新“成员”时向列添加这些“成员”。这些成员也称为“定制成员”。
组是所选成员的静态列表或选择步骤生成的静态或动态列表。组表示为成员。您可以钻探为分层列创建的组,但不能钻探为属性列创建的组。
组使用与其一起显示的度量列的现有聚合函数。从 Oracle BI Server 中详细程度最低的级别向上执行聚合,但任何值都不会计算两次。
计算项是成员之间的计算,它表示为一个无法钻探的成员。当创建计算项时,您应当添加一个新成员,您在该成员中选择了如何聚合该项,例如总和、平均值或定制公式。计算在聚合级别执行,而不是在详细程度最低的级别执行。
如果您在创建组或计算项时选择了所有视图选项,则组和计算项将成为整个分析的选择步骤。因此,它们应用于该分析中的所有视图。这些组和计算项可保存为内嵌对象或命名对象。有关信息,请参阅将对象保存为内嵌或命名对象。
如果您通过选择当前视图选项来为特定视图创建组或计算项,则该组或计算项将只应用于特定的活动视图。
组 (在其他产品中也称为“保存的选择”) 是用户定义的列成员。
组可以是成员列表,也可以是一组为生成成员列表而执行的选择步骤。所有成员必须来自同一属性列或分层列,并且在分层列中,成员可以来自不同的层次级别。组始终按添加顺序在列的列表底部显示 (如“选择步骤”窗格中显示)。组可以包含成员或其他组。您可以创建一个定制组并将该定制组添加到视图内的列中。
您可以将组保存到目录并重用它。例如,您可以将组应用于分析、仪表盘列提示或变量提示。如果将组应用于提示,该提示在运行时会将该组作为一个选项列表选项 (或者将组成员作为多个选项列表选项) 向用户显示。有关当用户选择组或列成员时使用提示覆盖选择步骤的信息,请参阅使用列提示覆盖选择步骤。
计算项是成员之间的计算,它以一个成员的形式表示。
通过使用计算项,您可以覆盖在 Oracle BI 资料档案库中指定的默认聚合规则,对于现有分析,则覆盖设计人员选择的聚合规则。您可以使用定制公式 (默认值) 或者通过使用函数 (例如 SUM) 组合所选成员来定义计算项。
计算项是用户定义的列成员。计算项可包含多个成员或其他计算项。计算项始终按添加顺序在列列表底部显示 (如“选择步骤”窗格中所示)。您可以将计算项保存到目录并重用它。
当您希望将一组成员作为一个实体查看和处理时,计算项非常有用。例如,您可以为下列各项定义计算项:
某个地区的关键帐户
高端产品
非标准时段,如九月份的前三周
您可以在多个位置为列创建计算项。计算不同于应用于度量的默认聚合规则,如将总计添加到表和数据透视表中所述。计算项在内部作为 SQL SELECT 语句处理,并在结果集内执行指示的函数。有关 SQL 函数的详细信息,请参阅《Logical SQL Reference Guide for Oracle Business Intelligence Enterprise Edition》。
使用组或计算项将新“成员”添加到列。
例如,可以查看移动设备产生的收入并将该数字与其他产品类型进行比较。可以为“产品”列创建一个名为“移动设备”的组,该组包含“翻盖手机”和“智能手机”。使用以下过程可以创建计算项或组。
注:
如果 Oracle Online Analytical Processing (OLAP) 是分析的数据源,则在使用组时可能会遇到错误。如果组包含在视图中,并且显示一条错误消息,问题可能是该分析中的度量列使用了外部聚合。有关如何实施下面某个可能的解决方案的信息,请与管理员联系:
为资料档案库中的度量显式指定聚合规则。
在 Oracle OLAP 分析工作区中创建适当的值组作为维成员。
可以更新组和计算项以向用户提供最有用的信息。
您可以采用多种方法来编辑组和计算项:
在“选择步骤”窗格中,单击计算项或组的相应链接,然后单击编辑以显示相应对话框。
如果您已将对象保存到目录,请在“目录”窗格中选择该对象,然后单击编辑以便显示相应对话框。
在热矩阵、表、数据透视表或格状图中 (在外维边上),右键单击组或计算项,然后选择编辑组或编辑计算项。
组或计算项的值可能会受过滤器和选择步骤的影响,如以下列表中所述:
过滤器 - 仅使用未通过过滤器删除的成员来对组或计算项求值。例如,如果您需要对某个计算项执行 SUM (EAST + WEST),但已通过过滤器删除 WEST,则计算项仅包含 EAST 总和。如果已删除所有成员,则会返回一个空值,空值在热矩阵、表、数据透视表或格状图中显示为一个空白单元。
选择步骤 - 当创建选择步骤时,您可以在某个步骤中添加一个组或计算项。后续的“仅保留”或“删除”步骤可以引用该组或计算项中包含的成员。
后续步骤中保留或删除的成员会对组列表产生影响,但组大纲值保持不变。例如,假定 MyNewYork 组包含 Albany 和 Buffalo,并且其值为 100。另外假定在后续步骤中删除了 Albany。MyNewYork 组的值仍保持为 100,但 Albany 不再随该组列出。
计算项不受在后续步骤中保留或删除的成员的影响。
如果从所有视图中删除通过使用当前视图选项按钮创建的组或计算项,则组或计算项将保留,并且将不会添加到您随后添加的任何新视图。
如果从所有视图中删除通过使用所有视图选项按钮创建的组或计算项,则组或计算项将保留,并且将添加到您随后添加的任何新视图。
如果要使用右键单击菜单删除某个组或计算项,应考虑以下事项:
从仪表盘页内的视图中 - 将仅从当前视图中删除计算项或组。
从视图编辑器内的视图中 - 将从所有视图中删除计算项或组。
可以将组添加到在其他分析中创建该组时使用的同一列。
添加到分析的组可以是成员列表,也可以是一组选择步骤。有关这些组的信息,请参阅将选择步骤保存为组对象。
可以使用“结果”选项卡添加组,也可以在“目录”窗格中执行此操作。您也可以采用下列方式来添加组:
在“编辑成员步骤”对话框的操作框中选择以组或计算项开始,然后从“目录”窗格中的“可用”列表选择相应组。
在“选择步骤”窗格中,单击相应列对应的然后,新建步骤,选择添加组或计算项,再选择选择现有组和计算项,然后在生成的对话框中选择相应组。
当使用组和计算项时,您可能需要“嵌套”组和计算项;举例来说,也就是在某个组中创建一个组。
下面的列表提供了嵌套组和计算项的各种情况:
组可以嵌套;即它们可以包含其他组。嵌套组“已展平”。例如,假设 my_favorite_countries 组包含 my_favorite_cities 组。当您在表中显示和展开 my_favorite_countries 组时,您将无法看到 my_favorite_cities 组,而会看到 my_favorite_cities 组的成员值。
可以嵌套计算项;也就是说,计算项可以包含其他计算项。
组不能包含计算项,计算项也不能包含组。
当使用选择步骤时:
您可以将包含组或计算项的选择步骤保存为将在运行时生成其结果的步骤系列,也可以将其保存为每次重新显示的静态结果。
您可以使用“目录”窗格应用作为已保存步骤选择的组。如果在保存的选择包含计算项的步骤时执行此操作,则只能添加组的成员。您无法添加组本身。
要了解计算项,您必须对 SQL 有着基本了解。
此部分中的示例和说明假定您已基本了解 SQL 语句及其语法。这些示例中显示的语法适用于新建计算项对话框中的“定制公式”函数。这些示例是虚拟的。此处并未显示所有可能的计算项。
示例 6-1 获取当前度量的值
此示例显示获取 SoftDrinkA、SoftDrinkB 和 SoftDrinkC 中的每个产品的当前度量(例如,美元销售额)的值所需的代码,并添加相应值。
这等效于从“函数”列表中选择“总和”,并键入或单击“SoftDrinkA”、“SoftDrinkB”、“SoftDrinkC”以将其添加到“函数”字段。
sum('SoftDrinkA','SoftDrinkB','SoftDrinkC')
示例 6-2 获取当前最小度量
此示例显示获取 SoftDrinkA 或 SoftDrinkB 的当前最小度量(例如,美元销售额,取二者中的较小者)所需的代码。
min('SoftDrinkA','SoftDrinkB')
在此示例和上一个示例中,针对外部层(例如 Product 层)中的每个成员执行每个函数计算项。例如,如果“Year”和“Product”位于一个轴上,并且上面的某个计算项是基于“Product”层构建的,则会按年计算结果。
示例 6-3 获取外部层中每项的值
此示例显示获取外部层(例如 Year 和 Product)中每项的值所需的代码,并添加这些值。
您不能为属性列指定命名的项 (例如,SoftDrinkA),但可以指定 $n 或 $-n,其中 n 是一个整数,表示该项在行中的位置。如果指定 $n,则从第 n 行提取度量。如果指定 $-n,则从倒数第 n 行提取度量。
例如,对于美元销售额,$1 从数据集内的第一行获取度量,$-1 从数据集内的最后一行获取度量。
sum(*)
示例 6-4 获取度量值并计算度量值的总和
此示例显示从第一、第二和第三行中获取项的当前度量(例如美元销售额)并计算这些度量总和所需的代码。
sum($1,$2,$3)
示例 6-5 累加销售额值
此示例显示将 SoftDrinkA、SoftDrinkB 和 SoftDrinkC 的销售额相加所需的代码。请注意,本示例中显示的两个计算项等效。也就是说,Sum 是默认函数;因此,可以忽略该函数。
'SoftDrinkA' + 'SoftDrinkB' + 'SoftDrinkC'
sum('SoftDrinkA','SoftDrinkB','SoftDrinkC')
示例 6-6 累加销售额值并返回最大值
此示例显示累加 SoftDrinkA 的销售额与食物 SoftDrinkA 的销售额,然后累加 SoftDrinkB 的销售额与食物 SoftDrinkB 的销售额,并返回这两个数量的最大值所需的代码。
max('SoftDrinkA' + 'diet SoftDrinkA', 'SoftDrinkB' + 'diet SoftDrinkB')