SELECT FROM <模型>.CASES (DMX)

支持钻取功能,并返回用于为模型定型的事例。如果对挖掘结构和挖掘模型都启用了钻取功能,并且具有相应的权限,则还可以返回未包括在模型中的结构列。

如果未对挖掘模型启用钻取功能,则此语句将失败。

注意注意

在数据挖掘扩展插件 (DMX) 中,只能在创建模型时启用钻取功能。您可以使用 Business Intelligence Development Studio 向现有的模型中添加钻取功能,但是必须先重新处理模型,然后才能查看或查询事例。

有关如何启用钻取功能的详细信息,请参阅CREATE MINING MODEL (DMX)SELECT INTO (DMX)ALTER MINING STRUCTURE (DMX)

语法

SELECT [FLATTENED] [TOP <n>] <expression list> FROM <model>.CASES
[WHERE <condition expression>][ORDER BY <expression> [DESC|ASC]]

参数

  • n
    可选。一个指定返回行数的整数。

  • expression list
    一个逗号分隔的表达式列表。该表达式可以包括列标识符、用户定义函数、UDF 以及 VBA 函数等。

    若要包括挖掘模型中没有包括的结构列,请使用函数 StructureColumn('<structure column name>')。

  • model
    模型标识符。

  • condition expression
    一个限制条件,用于限制从列列表返回的值。

  • expression
    可选。一个返回标量值的表达式。

注释

如果对挖掘模型和挖掘结构都启用了钻取功能,那么作为具有模型和结构钻取权限的角色成员的用户,可以访问没有包括在挖掘模型中的挖掘结构列。因此,若要保护敏感数据或个人信息,应构造数据源视图来屏蔽个人信息,并且仅在需要时才对挖掘结构授予 AllowDrillthrough 权限。

Lag 函数可与时序模型一起使用,以返回或筛选每个事例与初始时间之间的时间间隔。

如果在 WHERE 子句中使用 IsInNode 函数,则只返回与架构行集的 NODE_UNIQUE_NAME 列指定的节点关联的事例。

示例

下面的示例基于挖掘结构“目标邮件”及其关联的挖掘模型,而目标邮件则基于 AdventureWorks DW 数据库。有关详细信息,请参阅数据挖掘基础教程

示例 1:钻取到模型事例和结构列

以下示例返回用于测试目标邮件模型的所有事例的列。如果建立模型所依据的挖掘结构不存在维持测试数据集,则此查询将返回 0 个事例。可以使用表达式列表仅返回需要的列。

SELECT * FROM [TM Decision Tree].Cases
WHERE IsTestCase();

示例 2:钻取到特定节点中的定型事例

以下示例只返回那些用于对分类 2 进行定型的事例。分类 2 节点的 NODE_UNIQUE_NAME 列的值为 "002"。该示例还将返回一个不作为挖掘模型组成部分的结构列 [Customer Key],并为该列提供别名 CustomerID。请注意,结构列的名称作为字符串值传递,因此必须用引号引起来,而不是用括号括起来。

SELECT StructureColumn('Customer Key') AS CustomerID, * 
FROM [TM_Clustering].Cases
WHERE IsTrainingCase()
AND IsInNode('002')

若要返回结构列,必须对挖掘模型和挖掘结构都启用钻取权限。

注意注意

并非所有挖掘模型类型都支持钻取功能。有关支持钻取功能的模型的详细信息,请参阅针对挖掘模型和挖掘结构使用钻取(Analysis Services – 数据挖掘)