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) 语句参考
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈