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) 语句参考