6 过滤和选择分析的数据

本章介绍如何在 Oracle Business Intelligence 企业版中构建过滤器、选择步骤、组和计算项。本章还说明了如何使用这些对象来指定显示在分析和仪表盘中的数据。

将对象保存为内嵌或命名对象

本部分介绍将对象另存为内嵌对象或命名对象。它包括以下主题:

主题

什么是内嵌对象或命名的对象?

当使用特定对象时,您可以创建随这些对象一起保存的其他对象。

当随其他对象保存某个对象时,该对象会以“内嵌”方式保存。您可以按内嵌方式保存过滤器、组和计算项。例如,您可以创建某个组作为分析的一部分。当保存分析时,该组将以“内嵌”方式保存或随分析一起保存。

除以内嵌方式保存这些对象以外,您还可以将这些对象作为单独的对象随主题区域一起保存在 Oracle BI 表示目录中。当单独保存对象时,该对象即为“命名的”对象。命名的对象提供可重用性,因为您可以创建一个对象,并多次将其用于任何分析、仪表盘(适用于过滤器)或包含在命名的对象中指定的列的仪表盘页(适用于过滤器)。当更新并保存命名的对象时,这些更新立即应用于使用该命名对象的所有对象。

例如,在以内嵌方式随分析一起保存组之后,您可以将该组作为分析的自身对象保存在目录中。然后,您可以从“目录”窗格将命名的组应用于其他分析。

什么是命名对象的文件夹结构?

命名过滤器、组和计算项通常保存到其相关主题区域文件夹中。

通过将对象保存到主题区域文件夹,您可以确保在为同一主题区域创建分析时可以使用这些对象。

保存在 /My Folders 文件夹中的命名的对象仅供您使用。保存在 /Shared Folders 文件夹中的对象可供有权访问该文件夹的其他用户使用。如果 /My Folders 文件夹或 /Shared Folders 文件夹中不存在主题区域文件夹,则会自动创建。当保存对象时,“另存为”对话框显示指向 /My Folders/Subject Area Contents/<subject area> 的默认保存路径。但是,该对话框的“文件夹”区域仍然继续显示目录中主题区域文件夹的所有实例。

将过滤器保存为内嵌过滤器或命名过滤器

可以将过滤器保存为内嵌过滤器或命名过滤器。

在“分析”编辑器的“标准”选项卡的“过滤器”窗格中创建内嵌过滤器时,您可以选择性地将此内嵌过滤器保存为命名过滤器。此外,还可以在分析级别创建命名过滤器,或者作为单独的对象在全局标题中创建命名过滤器。

命名过滤器可以过滤嵌入到一个仪表盘中的全部或部分分析,或者过滤嵌入到同一仪表盘页的全部或部分分析。

将组和计算项保存为内嵌或命名对象

通过保存组和计算项可以在应用程序中重用这些函数。

您可以将组和计算项保存为内嵌或命名对象:

  • 如果在编辑和保存视图的过程中或者在复合布局中工作的过程中创建组或计算项,则该组或计算项将以内嵌方式随分析一同保存。

  • 当在“选择步骤”窗格中工作时:

    • 您可以在目录内将步骤中的组或计算项保存为命名的对象。

    • 您可以将一组步骤或生成的列成员列表保存为命名的对象。如果其中一个步骤包含计算项,则不能将一组步骤保存为组。

请参阅将组添加到其他分析

要将计算项或组作为命名的对象保存到目录,请执行以下操作:

  1. 显示“选择步骤”窗格。

  2. 单击计算项或组的链接,然后单击将计算项另存为将组另存为以便显示另存为对话框。

  3. 完成此对话框以便将对象保存到目录。

要将一组步骤作为组保存到目录,请执行以下操作:

  1. 显示“选择步骤”窗格。

  2. 单击列名最右侧的保存选择步骤按钮。

  3. 完成保存选择步骤对话框以便将组作为对象保存到目录。

什么是过滤器和选择步骤?

使用过滤器和选择步骤可以限制运行分析时显示的结果,以使结果回答某个特定问题。

使用过滤器和选择步骤可以限制运行分析时显示的结果。这意味着结果可以回答特定问题。过滤器和选择步骤与为分析选择的列一起确定结果包含的内容。根据过滤器和选择步骤,仅显示与标准匹配的那些结果。例如,根据您工作的行业,您可以使用过滤器和选择步骤了解前十名表现最佳的人员,您还可以了解特定品牌的销售额(美元)以及利润最大的客户。

过滤器和选择步骤按照列级别进行应用,并提供了两种方法来限制分析中的数据。始终先对列应用过滤器,然后再应用任何选择步骤。步骤按其指定顺序进行应用。过滤器和选择步骤在诸多方面都有所不同:

  • 在聚合查询前,过滤器直接应用于列。过滤器影响查询,进而影响度量的结果值。例如,假定在您的成员列表中,聚合总和为 100。经过一段时间后,将有更多的成员符合过滤标准,并在过滤时保留,这会将聚合总和增加到 200。

  • 选择步骤在聚合查询之后应用,并且仅影响显示的成员,而不会影响生成的聚合值。例如,假定在您的成员列表中,聚合总和为 100。如果您使用选择步骤删除了某个成员,聚合总和将保留为 100。选择步骤基于各个列,且不能跨多个列。

过滤器和选择步骤与为分析选择的列一起确定结果包含的内容。根据过滤器和选择步骤,仅显示与标准匹配的那些结果。例如,根据您工作的行业,您可以使用过滤器和选择步骤了解前十个表现最佳人员、特定品牌的销售额(美元)以及利润最大的客户等。

提示是另一种过滤器,可应用于仪表盘中的所有项。可使用提示在运行时完成选择步骤和过滤器。请参阅在仪表盘和分析中进行提示

Oracle BI 企业版提供了过滤器视图和选择步骤视图,可以将这些视图添加到分析中以便显示应用到分析的任意过滤器或选择步骤。添加这些视图可以帮助用户了解在分析中显示的信息。请参阅添加在仪表盘中显示的视图

过滤器和选择步骤之间的区别

过滤器和选择步骤按照列级别进行应用,并提供了两种方法来限制分析中的数据。

始终先对列应用过滤器,然后再应用任何选择步骤。步骤按其指定顺序进行应用。过滤器和选择步骤在诸多方面都有所不同。

过滤器

您可以直接将过滤器应用于属性列和度量列。必须在聚合查询之前应用过滤器,过滤器可影响查询,从而影响生成的度量值。例如,假定在您的成员列表中,聚合总和为 100。经过一段时间后,将有更多的成员符合过滤标准,并在过滤时保留,这会将聚合总和增加到 200。

选择步骤

选择步骤在聚合查询之后应用,并且仅影响显示的成员,而不会影响生成的聚合值。例如,假定在您的分层成员列表中,聚合总和为 100。如果您使用选择步骤删除了某个成员,聚合总和将保留为 100。

您可以为属性列和分层列创建选择步骤。选择步骤基于各个列,且不能跨多个列。由于属性列没有聚合成员,因此,对属性列使用选择步骤和过滤器并不像对分层列使用选择步骤和过滤器那样特殊。当在“选择步骤”窗格中显示度量列时,无法为度量列创建步骤,因此步骤不会影响度量列。度量用于为属性列和分层列创建条件步骤,例如,大于 100 万美元的销售额。

向属性列应用过滤器以便影响分层列

可以在相关属性列上使用过滤器来影响分层列中的成员显示。

例如,假设有一个分层列包含级别“Year”、“Quarter”和“Month”。假设与“Year”层次级别相对应的属性列上存在过滤器。如果在“Year”上创建过滤器以将其限制为 2008 年和 2009 年,则当视图中显示该分层列时,将只有这两个年度可见。此功能取决于在 Oracle BI 管理工具的主题区域的业务层中定义逻辑列的方式。

使用数据选择

在指定要包含在分析中的数据成员时,可以从数据源创建数据选择。

每个选择为特定列 (例如“Product”或“Geography”) 的一组成员指定标准。每个选择由一个或多个步骤构成。步骤是影响选择的指令,例如添加其值包含文本 ABC 的 Product 成员。执行步骤的顺序也会影响数据的选择。每个步骤以递增方式作用于以前步骤的结果,而不是作用于该列的所有成员。

可以在“选择步骤”窗格中查看这些选择步骤。使用以下方法创建步骤:

  • 在向分析添加列时,将自动创建一个以所有成员开始的选择步骤,除非您明确添加特定成员。在拖放“结果”选项卡中的列成员以将其添加到分析时,也会自动创建步骤。例如,假设将 FY2007 和 FY2008 成员从“Year”分层列拖放到数据透视表。这将创建选择步骤添加 FY2007、FY2008

  • 在添加组和计算项时,将自动创建步骤。

  • 当您使用右键单击交互 (例如,添加相关项仅保留) 以缩小特定分层列或属性列的数据选择范围时,将自动创建步骤。要删除这些选择步骤,请使用诸如删除组删除计算项等右键单击交互。请参阅视图中的右键单击交互

  • 要细化特定分层列或属性列的数据选择,可以使用“选择步骤”窗格直接创建步骤。可以从各个位置显示“选择步骤”窗格,这些位置包括“结果”选项卡、“标准”选项卡和某些视图编辑器。

选择步骤为以下任一类型:

  • 显式成员列表 - 这种步骤可包含列的成员列表,例如 Boston、New York、Kansas 和 South。对于分层列,成员可以来自不同的层次级别。对于属性列,成员仅来自该列。

  • 条件步骤 - 这种步骤可以指定根据条件从列选择成员,它可以属于各种类型之一,包括基于度量或前/后值。此成员列表是动态的,在运行时确定。

    使用选择步骤时,如果在分层列中搜索非文本(例如,日期或时间)成员,搜索将不会生成任何结果。

  • 基于层次步骤 - 这种步骤面向分层列,可用于选择按其选择成员的关系类型。可以选择系列关系(例如对象的子级或父级)、特定层次级别(仅限基于级别的层次)或级别关系(仅限基于级别的层次)。

  • 组和计算项 - 这种步骤可包含组或计算项。组和计算项只能用于“添加”步骤;它们不能用于“仅保留”或“删除”步骤。

    请参阅使用组和计算项

创建选择步骤

可以在“选择步骤”窗格中创建步骤,该窗格可从不同位置显示。

创建一个选择步骤以提供有关指定从数据源中选择数据的标准的说明。在将列添加到分析时,会添加隐式以所有成员开始步骤。“全部”表示应用过滤器后列的所有成员。

例如,可以创建一个步骤来指定针对 Office 列中的以下成员的标准:Baltimore、Austin 和 Athens。

在“结果”选项卡中创建选择步骤可以让用户选择对其最重要的数据。

  1. 显示“分析”编辑器的“结果”选项卡。
  2. 如果“选择步骤”窗格不可见,请单击工具栏上的显示“选择步骤”窗格按钮以将其显示出来。

    该窗格也可能隐藏在“结果”选项卡底部。单击加号图标便可将其展开。

  3. 对于要定义步骤的列,单击然后,新建步骤链接。
  4. 从菜单中,选择要创建步骤类型的相应选项并完成所显示的对话框。

使用右键单击交互 (例如,添加相关项仅保留) 以缩小视图中的特定分层列或属性列的数据选择范围时,将自动创建选择步骤。请参阅视图中的右键单击交互

将选择步骤添加到分析中之后,可以转到“分析”编辑器的“结果”选项卡并将选择步骤视图添加到分析中。如果添加选择步骤视图,则在运行时,用户可以查看应用到分析的选择步骤。请参阅“选择步骤”编辑器的“结果”选项卡。

编辑选择步骤

在分析中可以编辑现有选择步骤。

使用“选择步骤”窗格可以对选择步骤进行更改。

  • 将鼠标指针悬停在“选择步骤”窗格中的步骤上,然后单击所显示的工具栏上的按钮。

    可以执行各种任务,例如,显示用于编辑步骤、删除步骤或更改步骤列表中步骤顺序的对话框。

    对于组或计算项,单击其名称以显示一个菜单,其中包含用于编辑和保存的选项。

将选择步骤保存为组对象

将多个选择步骤保存为一个组对象后,可以在多个位置重用它们。

如果已创建一组选择步骤,则可以将该步骤组保存为一个组对象并加以重用。请参阅将组和计算项保存为内嵌或命名对象

使用选择步骤和双列

如果资料档案库配置了双列,则可以在双列上创建选择步骤。

要在双列上创建选择步骤,请选择该列的显示值,这将使用与这些显示值相对应的代码值自动计算出该步骤。

如果使用双列,请谨慎使用“新建计算项”对话框。您可能会在计算项的定制公式中包含一个位置运算符 (例如 $1 指定数据集中第一行的列)。如果包含位置运算符,则在计算公式时,不能将显示值映射到代码值。

请参阅了解双列功能

创建列过滤器

可以在列中创建命名过滤器或内嵌过滤器以显示特定数据。

请参阅编辑列过滤器

如果资料档案库配置了双列,并且您希望使用等于/位于不等于/不位于介于以外的运算符并指定代码值而不是显示值,则应明确选择代码列而不是显示列。请参阅了解双列功能

  1. 要创建命名过滤器,请执行以下操作:
    1. 从 Oracle Business Intelligence 主页,找到全局标题,将鼠标悬停在新建菜单上,然后从该菜单中选择过滤器
    2. 从“选择主题区域”对话框中,选择要创建过滤器的主题区域。
    3. 从“过滤器”编辑器的“主题区域”窗格中,双击要创建过滤器的列。
  2. 要创建内嵌过滤器,请执行以下操作:
    1. 创建一个分析或者访问要创建过滤器的现有分析。单击标准选项卡。
    2. 找到“过滤器”窗格,然后从“过滤器”窗格的工具栏中单击为当前主题区域创建过滤器按钮。此时分析的所选列将显示在级联菜单上。
    3. 从该菜单中选择一个列名。或者,选择更多列选项以访问“选择列”对话框,在其中可从主题区域中选择任意列。
      如果要为其他主题区域中的列添加过滤器,必须先在“主题区域”窗格中单击添加/删除主题区域按钮,将该主题区域添加到分析中。
  3. 在“新建过滤器”对话框的运算符字段中,为过滤器选择运算符。可从中进行选择的运算符列表将根据所选的列类型进行填充。有关各运算符 (包括提示基于其他分析的结果运算符选项) 的详细信息,请参阅运算符。
  4. 字段中,指定要在应用过滤器或条件时使用的一个或多个值。您可以执行以下操作:
    • 键入值,使用分号分隔各个值。
    • 从列表或日历中选择值。

      要搜索特定值,请在列表框中单击搜索。此时将显示“选择值”对话框,在其中可以搜索和选择值。

    如果资料档案库配置了双列,并且您要在显示列上创建过滤器,则默认情况下指定显示值。但是,如果您的组织允许显示代码值,则可以指定代码值而不是显示值,但前提是使用以下运算符之一:

    • 等于/位于

    • 不等于/不位于

    • 介于

    要指定代码值,请选中代码列选择框,然后指定这些值。

  5. 如果资料档案库配置了双列,而您要在显示列上创建过滤器并且希望过滤显示值而不是代码值,则取消选中代码列过滤框。
  6. 单击添加更多选项按钮,向过滤器添加 SQL 表达式、会话变量、资料档案库变量、表示变量或全局变量。如果正在使用 SQL 表达式或变量设置过滤器的值,则应将字段保留为空。
  7. 选中保护过滤器框,以防过滤器被匹配提示的值覆盖或在用户导航到分析中的其他报表时被覆盖。在分析中从一个报表导航到另一个报表时,在第一个报表中指定的任何提示值都可以传输到第二个报表。
  8. 要将过滤器转换为 SQL 语句,请选中将此过滤器转换为 SQL 框。此时将显示“SQL 高级过滤器”对话框。
    这是单向转换。在选中将此过滤器转换为 SQL 框后,您将无法再在“编辑过滤器”对话框中查看和编辑过滤器。在将过滤器转换为 SQL 语句后,只能在“SQL 高级过滤器”对话框中以 SQL 语句方式查看和编辑过滤器项。请参阅为分析中的列过滤器创建和编辑 SQL 语句
  9. 完成指定过滤器标准后,单击确定
  10. 使用以下方法之一保存过滤器:
    • 从“分析”编辑器中,可以单击保存分析以将过滤器保存为内嵌过滤器。
    • 从“过滤器”编辑器中,可以单击保存过滤器以将过滤器保存为命名过滤器。

编辑列过滤器

使用以下过程打开并编辑保存的过滤器。

如果编辑和保存命名过滤器,则对过滤器所做的更改将传播到使用了该过滤器的所有位置。

  1. 要打开命名过滤器,请执行以下操作:
    1. 在全局标题中,单击目录
    2. 在“目录”页上,导航到要编辑的过滤器,然后单击编辑链接。
  2. 要打开内嵌过滤器,请执行以下操作:
    1. 在分析中,单击标准选项卡。
    2. 在“过滤器”窗格中,找到要编辑的过滤器,然后单击编辑过滤器按钮。
  3. 在“过滤器”编辑器中,执行所需的更改。
  4. 保存过滤器。

使用 EVALUATE_PREDICATE 函数

使用此 SQL 函数可以添加非标准过滤器。

此部分提供下列主题说明如何使用 EVALUATE_PREDICATE 函数:

请参阅《Logical SQL Reference Guide for Oracle Business Intelligence Enterprise Edition》

如何配合使用 EVALUATE_PREDICATE 函数和过滤器?

您可以添加 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 个字符的所有行(例如,BizTechHomeView)。

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 函数添加到内嵌过滤器。

您不能将此函数与分层列配合使用。有关详细信息,请参阅如何配合使用 EVALUATE_PREDICATE 函数和过滤器?《Logical SQL Reference Guide for Oracle Business Intelligence Enterprise Edition》

  1. 转至“分析”编辑器的“过滤器”窗格,然后单击更多选项按钮,并选择添加 EVALUATE_PREDICATE 函数选项。
  2. 在“新建 EVALUATE_PREDICATE 函数”对话框中输入函数的公式。
  3. 单击确定在“过滤器”窗格中显示 EVALUATE_PREDICATE 函数。

将命名过滤器应用到分析

如果您希望过滤分析中的数据,则可以应用任意命名过滤器。

使用下面的过程将命名过滤器应用到分析。

  1. 创建或打开要将命名过滤器应用到的分析。
  2. 在“分析”编辑器的“标准”选项卡中,找到“目录”窗格并导航到保存命名过滤器的相应文件夹。过滤器通常保存在主题区域子文件夹中。例如,Shared Folders/2. Functional Examples/Filters/A - Sample Sales/Demo
  3. 选择命名过滤器,并单击添加更多选项按钮以显示“应用保存的过滤器”对话框。
  4. 指定您希望如何将命名过滤器添加到分析。您可以选择下列一个或两个选项:
    • 选中应用前清除全部现有筛选器框可以在添加命名筛选器之前从分析中删除所有现有的筛选器。
    • 选择应用过滤器的内容而不是过滤器引用框可以将过滤器的实际内容复制到分析。通过复制内容,您可以处理过滤标准,而不必变更保存的过滤器。当取消选择应用过滤器的内容而不是过滤器引用框时,会向分析添加过滤器引用。您可以从分析中查看(但不能更改)命名过滤器的内容。
  5. 单击确定

对列过滤器进行组合和分组

通过使用 AND 和 OR 布尔运算符对列过滤器进行组合和分组,您无需了解 SQL 语句便可创建复杂过滤器。

通过分组或组合列过滤器,可以确定 Oracle BI EE 过滤分析的优先级。

如果要对过滤器进行分组,则过滤器必须包含三个或更多的过滤器项。

  1. 创建或打开一个命名过滤器或一个包含内嵌过滤器的分析。
  2. 如果使用的是命名过滤器,则定位“保存的过滤器”窗格并确认该过滤器包含两个或更多的过滤器项。如果使用的是内嵌过滤器,则定位“过滤器”窗格并确认该过滤器包含两个或更多的过滤器项。
    在添加第二个过滤器项后,将在第二个过滤器项的前面显示 AND 运算符。
  3. 要将 AND 运算符更改为 OR 运算符,请单击单词 AND。这样便可在 ANDOR 之间进行切换。请记住:
    • AND 运算符表示必须符合每个过滤器中指定的标准。这是组合列过滤器的默认方法。

    • OR 运算符表示必须符合至少一个列过滤器中指定的标准。

  4. 添加过滤器项时,根据需要单击 ANDOR 运算符以构建适当的过滤器组合。
  5. 使用以下方法之一保存过滤器:
    • 从“分析”编辑器中,可以选择保存分析以将过滤器保存为内嵌过滤器。

    • 从“过滤器”编辑器中,可以选择保存过滤器以将过滤器保存为命名过滤器。

    有关详细信息,请参阅将对象保存为内嵌或命名对象

将保存的分析用作过滤器

可以创建基于其他分析所返回的值的过滤器。

任何返回值列的已保存分析都可用于过滤分析中的匹配列。

  1. 创建或打开一个命名过滤器或一个包含内嵌过滤器的分析。
  2. 如果使用的是命名过滤器,请定位“保存的过滤器”窗格,然后从“主题区域”窗格中选择要创建过滤器的列。

    如果使用的是内嵌过滤器,请定位“过滤器”窗格,从“过滤器”窗格工具栏中单击为当前主题区域创建过滤器按钮,然后选择要创建过滤器的列。

  3. 在“新建过滤器”对话框的运算符字段中,选择基于其他分析的结果

    此时将显示保存的分析关系使用列中值字段。

  4. 保存的分析字段中输入已保存分析的完整路径,或者单击浏览按钮以找到过滤器所基于的分析。
  5. 使用列中值字段的已保存分析中选择一个列名,然后在关系字段中选择结果与要过滤的列之间的相应关系。
  6. 单击确定

为分析中的列过滤器创建和编辑 SQL 语句

您可以创建和编辑逻辑 SQL WHERE 子句,以便用作过滤器。

虽然一般不需要此功能,但此功能适用于需要高级过滤功能的用户。有关 SQL 子句的说明,请参阅《Oracle Fusion Middleware LogicalSQL Reference Guide for Oracle Business Intelligence Enterprise Edition》

在将过滤器转换为 SQL 语句后,您只能在“SQL 高级过滤器”对话框中将过滤器项作为 SQL 语句进行查看和编辑。您无法继续在“编辑过滤器”对话框中查看和编辑过滤器。

  1. 创建或打开一个命名过滤器或一个包含内嵌过滤器的分析。
  2. 如果使用的是命名过滤器,请定位“保存的过滤器”窗格,然后从“主题区域”窗格中选择要创建过滤器的列。

    如果使用的是内嵌过滤器,请定位“过滤器”窗格,从“过滤器”窗格工具栏中单击为当前主题区域创建过滤器按钮,然后选择要创建过滤器的列。

  3. 在“新建过滤器”对话框中,指定过滤器的标准,并选择将此过滤器转换为 SQL
  4. 单击确定
  5. 在“高级 SQL 过滤器”对话框的 SQL 字段中,输入修改,然后单击确定
    在将过滤器转换为 SQL 语句之后,您无法继续在“编辑过滤器”对话框中查看和编辑此过滤器。

使用计算度量

计算度量派生自其他度量,并且是使用公式创建的。

无法将计算度量添加到直接数据库查询或组合请求。

要创建计算度量,请执行以下操作:

  1. 执行以下操作之一:

    • 要为复合布局中包含列的数据视图创建计算度量,请单击“分析”编辑器:“结果”选项卡上的新建计算度量按钮。

    • 要为复合布局中的特定数据视图创建计算度量,请编辑特定数据视图,然后单击“结果”选项卡的“数据视图”编辑器上的新建计算度量按钮。

  2. 完成“新建计算度量”对话框。

  3. 单击确定按钮。

要编辑计算度量,请执行以下操作:

可以在“分析”编辑器的“标准”选项卡中编辑计算度量。

  1. 在“标准”选项卡中,单击计算度量的列名右侧的选项按钮。
  2. 根据需要修改列。
    • 指定列的排序顺序。(不能指定层次级别的排序顺序。)
    • 编辑属性列和度量列的公式,包括定制标题和指定聚合规则。(不能为分层列或层次级别定制标题、指定聚合规则或编辑公式。)
    • 编辑列属性以控制列和层次级别的格式设置和交互。

使用组和计算项

您可以创建一个组或计算项,以便作为热矩阵、表、数据透视表、格状图或图形中数据的一种显示方式。

通过组和计算项,您可以在数据源中不存在新“成员”时向列添加这些“成员”。这些成员也称为“定制成员”。

  • 组是所选成员的静态列表或选择步骤生成的静态或动态列表。组表示为成员。您可以钻探为分层列创建的组,但不能钻探为属性列创建的组。

    组使用与其一起显示的度量列的现有聚合函数。从 Oracle BI Server 中详细程度最低的级别向上执行聚合,但任何值都不会计算两次。

  • 计算项是成员之间的计算,它表示为一个无法钻探的成员。当创建计算项时,您应当添加一个新成员,您在该成员中选择了如何聚合该项,例如总和、平均值或定制公式。计算在聚合级别执行,而不是在详细程度最低的级别执行。

如果您在创建组或计算项时选择了所有视图选项,则组和计算项将成为整个分析的选择步骤。因此,它们应用于该分析中的所有视图。这些组和计算项可保存为内嵌对象或命名对象。有关信息,请参阅将对象保存为内嵌或命名对象

如果您通过选择当前视图选项来为特定视图创建组或计算项,则该组或计算项将只应用于特定的活动视图。

什么是组?

组(在其他产品中也称为“保存的选择”)是用户定义的列成员。

组可以是成员列表,也可以是一组为生成成员列表而执行的选择步骤。所有成员必须来自同一属性列或分层列,并且在分层列中,成员可以来自不同的层次级别。组始终按添加顺序在列的列表底部显示(如“选择步骤”窗格中显示)。组可以包含成员或其他组。您可以创建一个定制组并将该定制组添加到视图内的列中。

您可以将组保存到目录并重用它。例如,您可以将组应用于分析、仪表盘列提示或变量提示。如果将组应用于提示,该提示在运行时会将该组作为一个选项列表选项(或者将组成员作为多个选项列表选项)向用户显示。有关当用户选择组或列成员时使用提示覆盖选择步骤的信息,请参阅使用列提示覆盖选择步骤

什么是计算项?

计算项是成员之间的计算,它以一个成员的形式表示。

通过使用计算项,您可以覆盖在 Oracle BI 资料档案库中指定的默认聚合规则,对于现有分析,则覆盖设计人员选择的聚合规则。您可以使用定制公式 (默认值) 或者通过使用函数 (例如 SUM) 组合所选成员来定义计算项。

计算项是用户定义的列成员。计算项可包含多个成员或其他计算项。计算项始终按添加顺序在列列表底部显示(如“选择步骤”窗格中所示)。您可以将计算项保存到目录并重用它。

当您希望将一组成员作为一个实体查看和处理时,计算项非常有用。例如,您可以为下列各项定义计算项:

  • 某个地区的关键帐户

  • 高端产品

  • 非标准时段,如九月份的前三周

您可以在多个位置为列创建计算项。计算不同于应用于度量的默认聚合规则。请参阅将总计添加到表和数据透视表。计算项在内部作为 SQL SELECT 语句处理,并在结果集内执行指示的函数。请参阅《Oracle Fusion Middleware LogicalSQL Reference Guide for Oracle Business Intelligence Enterprise Edition》

创建组和计算项

使用组或计算项将新“成员”添加到列。

例如,可以查看移动设备产生的收入并将该数字与其他产品类型进行比较。可以为“产品”列创建一个名为“移动设备”的组,该组包含“翻盖手机”和“智能手机”。使用以下过程可以创建计算项或组。

  1. 执行以下操作之一:
    • 单击此按钮以创建计算项或组。

      在多个位置提供了此按钮。下面的列表提供了其中的几个位置:

      • 在“视图”编辑器的工具栏上,单击新建计算项按钮或新建组按钮。将为所有视图创建新的计算项或组。

      • 在“布局”窗格的“<视图类型> 行或列”区域中,单击列名右侧的更多选项按钮,然后选择新建计算项。可以选择是将此计算项或组添加到当前视图还是添加到所有视图。

    • 在“选择步骤”窗格中单击然后,新建步骤链接。

    • 在热矩阵、表、数据透视表或格状图中 (在外维边上),选择要包括的列或列标题、成员、组或计算项,然后右键单击并选择创建组创建计算项

  2. 完成相应对话框(即“新建计算项”对话框或“新建组”对话框)。
  3. 添加计算项或组时,应考虑以下事项:
    • 从复合布局中:

      • 如果使用右键单击菜单,则选择当前视图所有视图选项按钮以将组或计算项添加到特定的活动视图或复合布局中的所有视图。

      • 如果使用工具栏按钮或选择窗格,则组或计算项将被添加到复合布局中的所有视图

    • 从视图编辑器中,选择当前视图所有视图选项按钮以将组或计算项添加到特定的活动视图或复合布局中的所有视图。

    • 从“数据透视表”编辑器或“表”编辑器中,通过使用更多选项按钮,选择当前视图所有视图选项按钮以将组或计算项添加到特定的活动视图或复合布局中的所有视图。

    • 如果通过使用右键单击菜单向仪表盘内的某个视图添加计算项或组,则该计算项或组将只添加到当前视图中。

    • 如果通过使用所有视图选项按钮添加组或计算项,则还将在您添加的任何新视图中添加组或计算项。

    • 如果通过使用当前视图选项按钮添加组或计算项,则不会在您添加的任何新视图中添加组或计算项。

  4. 完成计算项或组之后,请单击确定

    如果检测到任何错误,则会显示一条消息。请更正错误并再次单击确定

如果 Oracle Online Analytical Processing (OLAP) 是分析的数据源,则在使用组时可能会遇到错误。如果组包含在视图中,并且显示一条错误消息,问题可能是该分析中的度量列使用了外部聚合。

有关如何实施下面某个可能的解决方案的信息,请与管理员联系:

  • 为资料档案库中的度量显式指定聚合规则。

  • 在 Oracle OLAP 分析工作区中创建适当的值组作为维成员。

编辑组和计算项

可以更新组和计算项以向用户提供最有用的信息。

您可以采用多种方法来编辑组和计算项:

  • 在“选择步骤”窗格中,单击计算项或组的相应链接,然后单击编辑以显示相应对话框。

  • 如果您已将对象保存到目录,请在“目录”窗格中选择该对象,然后单击编辑以便显示相应对话框。

  • 在热矩阵、表、数据透视表或格状图中 (在外维边上),右键单击组或计算项,然后选择编辑组编辑计算项

组或计算项的值可能会以多种方式受过滤器和选择步骤的影响:

  • 过滤器 - 仅使用未通过过滤器删除的成员来对组或计算项求值。例如,如果您需要对某个计算项执行 SUM (EAST + WEST),但已通过过滤器删除 WEST,则计算项仅包含 EAST 总和。如果已删除所有成员,则会返回一个空值,空值在热矩阵、表、数据透视表或格状图中显示为一个空白单元。

  • 选择步骤 - 当创建选择步骤时,您可以在某个步骤中添加一个组或计算项。后续的“仅保留”或“删除”步骤可以引用该组或计算项中包含的成员。

    • 后续步骤中保留或删除的成员会对组列表产生影响,但组大纲值保持不变。例如,假定 MyNewYork 组包含 Albany 和 Buffalo,并且其值为 100。另外假定在后续步骤中删除了 Albany。MyNewYork 组的值仍保持为 100,但 Albany 不再随该组列出。

    • 计算项不受在后续步骤中保留或删除的成员的影响。

如果从所有视图中删除通过使用当前视图选项按钮创建的组或计算项,则组或计算项将保留,并且将不会添加到您随后添加的任何新视图。

如果从所有视图中删除通过使用所有视图选项按钮创建的组或计算项,则组或计算项将保留,并且将添加到您随后添加的任何新视图。

如果要使用右键单击菜单删除某个组或计算项,应考虑以下事项:

  • 从仪表盘页内的视图中 - 将仅从当前视图中删除计算项或组。

  • 从视图编辑器内的视图中 - 将从所有视图中删除计算项或组。

将组添加到其他分析

可以将组添加到在其他分析中创建该组时使用的同一列。

添加到分析的组可以是成员列表,也可以是一组选择步骤。有关这些组的信息,请参阅将选择步骤保存为组对象

可以使用“结果”选项卡添加组,也可以在“目录”窗格中执行此操作。您也可以采用下列方式来添加组:

  • 在“编辑成员步骤”对话框的操作框中选择以组或计算项开始,然后从“目录”窗格中的“可用”列表选择相应组。

  • 在“选择步骤”窗格中,单击相应列对应的然后,新建步骤,选择添加组或计算项,再选择选择现有组和计算项,然后在生成的对话框中选择相应组。

  1. 在“结果”选项卡上,显示一个分析,该分析包含要应用组中选择内容的相同列。
  2. 找到“目录”窗格,然后导航到保存已保存组的相应文件夹。
  3. 选择该组,然后在“目录”窗格的工具栏上单击添加更多选项按钮。
  4. 选择以下选项之一:
    • 添加:添加组本身,这将生成组的大纲值。在热矩阵、表、数据透视表或格状图中,可以看到组名,该组名可以展开以显示其成员值。(默认值)

    • 选择添加成员将仅向分析添加组成员。不会显示大纲值。

    组及其成员作为“添加”步骤包含在“选择步骤”窗格中。您可以根据需要对这些步骤重新排序。

嵌套组和计算项

当使用组和计算项时,您可能需要“嵌套”组和计算项;举例来说,也就是在某个组中创建一个组。

下面的列表提供了嵌套组和计算项的各种情况:

  • 组可以嵌套;即它们可以包含其他组。嵌套组“已展平”。例如,假设 my_favorite_countries 组包含 my_favorite_cities 组。当您在表中显示和展开 my_favorite_countries 组时,您将无法看到 my_favorite_cities 组,而会看到 my_favorite_cities 组的成员值。

  • 可以嵌套计算项;也就是说,计算项可以包含其他计算项。

  • 组不能包含计算项,计算项也不能包含组。

  • 当使用选择步骤时:

    • 您可以将包含组或计算项的选择步骤保存为将在运行时生成其结果的步骤系列,也可以将其保存为每次重新显示的静态结果。

    • 您可以使用“目录”窗格应用作为已保存步骤选择的组。如果在保存的选择包含计算项的步骤时执行此操作,则只能添加组的成员。您无法添加组本身。

计算项示例

要了解计算项,您必须对 SQL 有着基本了解。

此部分中的示例和说明假定您已基本了解 SQL 语句及其语法。这些示例中显示的语法适用于新建计算项对话框中的“定制公式”函数。这些示例是虚拟的。此处并未显示所有可能的计算项。

示例 6-1 获取当前度量的值

对于 SoftDrinkASoftDrinkBSoftDrinkC 中每个产品的当前度量(例如,美元销售额),此示例显示获取该度量值所需的代码,并添加相应值。

这等效于从“函数”列表中选择“总和”,并键入或单击 "SoftDrinkA"、"SoftDrinkB"、"SoftDrinkC" 以将其添加到“函数”字段。

sum('SoftDrinkA','SoftDrinkB','SoftDrinkC')

示例 6-2 获取当前最小度量

此示例显示获取 SoftDrinkASoftDrinkB 的当前最小度量(例如,美元销售额,取二者中的较小者)所需的代码。

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 累加销售额值

此示例显示将 SoftDrinkASoftDrinkBSoftDrinkC 的销售额相加所需的代码。本示例中显示的两个计算项等效。也就是说,Sum 是默认函数;因此,可以忽略该函数。

'SoftDrinkA' + 'SoftDrinkB' + 'SoftDrinkC' sum('SoftDrinkA','SoftDrinkB','SoftDrinkC')

示例 6-6 累加销售额值并返回最大值

此示例显示累加 SoftDrinkA 的销售额与食物 SoftDrinkA 的销售额,然后累加 SoftDrinkB 的销售额与食物 SoftDrinkB 的销售额,并返回这两个数量的最大值所需的代码。

max('SoftDrinkA' + 'diet SoftDrinkA', 'SoftDrinkB' + 'diet SoftDrinkB')