SELECT FROM <模型>。案例(DMX)

适用于: SQL Server Analysis Services

支持钻取,并返回用于训练模型的事例。 如果挖掘结构和挖掘模型上启用了钻取,并且具有适当的权限,则还可以返回模型中未包含的结构列。

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

注意

在数据挖掘扩展插件(DMX)中,只能在创建模型时启用钻取。 可以使用 SQL Server Data Tools (SSDT)将钻取添加到现有模型,但必须先重新处理模型,然后才能查看或查询事例。

有关如何启用钻取的详细信息,请参阅 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
可选。 一个整数,指定要返回的行数。

表达式列表
以逗号分隔的表达式列表。 表达式可以包括列标识符、用户定义的函数、UDF 和 VBA 函数,以及其他函数。

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

model
模型标识符。

条件表达式
限制从列列表中返回的值的条件。

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

注解

如果在挖掘模型和挖掘结构上都启用了钻取,则具有对模型具有钻取权限的角色的用户,并且该结构可以访问挖掘模型中不包含的挖掘结构的列。 因此,若要保护敏感数据或个人信息,应构造数据源视图以屏蔽个人信息,并仅在必要时授予 对挖掘结构的 AllowDrillthrough 权限。

Lag (DMX) 函数可用于时序模型,以返回或筛选每个事例与初始时间之间的时间滞后时间。

在 WHERE 子句中使用 IsInNode (DMX) 函数仅返回与架构行集NODE_UNIQUE_NAME列指定的节点关联的事例。

示例

以下示例基于基于 AdventureWorksDW2022 数据库及其关联的挖掘模型的挖掘结构目标邮件。 有关详细信息,请参阅 基本数据挖掘教程

示例 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')  

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

注意

并非所有挖掘模型类型都支持钻取。 有关支持钻取的模型的信息,请参阅钻取查询(数据挖掘)。

另请参阅

SELECT (DMX)
数据挖掘扩展插件 (DMX) 数据定义语句
数据挖掘扩展插件 (DMX) 数据操作语句
数据挖掘扩展插件 (DMX) 语句参考