适用于:  SQL Server Analysis Services
返回指定数据挖掘模型的挖掘模型架构行集。
语法
  
SELECT [FLATTENED] [TOP <n>] <expression list> FROM <model>.CONTENT   
[WHERE <condition expression>]  
[ORDER BY <expression> [DESC|ASC]]  
参数
n
可选。 一个指定返回行数的整数。
表达式列表
从内容架构行集派生的一组列,各列间以逗号分隔。
model
模型标识符。
条件表达式
可选。 一个限制条件,用于限制从列列表返回的值。
expression
可选。 返回标量值的表达式。
注解
SELECT FROM< 模型。>CONTENT 语句返回特定于每个算法的内容。 例如,您可能希望在自定义应用程序中,使用某个关联规则模型的所有规则的说明。 可以使用 SELECT FROM <模型>。CONTENT 语句,用于返回模型NODE_RULE列中的值。
下表列出了挖掘模型内容中包含的列。
注意
算法可能会为了正确表示内容而对列做出不同的解释。 有关每个算法的挖掘模型内容的说明,以及有关如何解释和查询每个模型类型的挖掘模型内容的提示,请参阅挖掘模型内容(Analysis Services - 数据挖掘)。
| CONTENT 行集列 | 说明 | 
|---|---|
| MODEL_CATALOG | 目录名称。 如果提供程序不支持目录,则为 NULL。 | 
| MODEL_SCHEMA | 未限定的架构名称。 如果提供程序不支持架构,则为 NULL。 | 
| MODEL_NAME | 模型名称。 此列中不能包含 NULL。 | 
| ATTRIBUTE_NAME | 与节点相对应的属性的名称。 | 
| NODE_NAME | 节点的名称。 | 
| NODE_UNIQUE_NAME | 节点在模型中的唯一名称。 | 
| NODE_TYPE | 表示节点类型的整数。 。 | 
| NODE_GUID | 节点 GUID。 如果没有 GUID,则为 NULL。 | 
| NODE_CAPTION | 与节点关联的标签或标题, 主要用于显示目的。 如果不存在标题,则返回 NODE_NAME。 | 
| CHILDREN_CARDINALITY | 节点所具有的子节点的数目。 | 
| PARENT_UNIQUE_NAME | 节点的父节点的唯一名称。 | 
| NODE_DESCRIPTION | 节点的说明。 | 
| NODE_RULE | 表示嵌入在节点中的规则的 XML 片段。 XML 字符串的格式采用 PMML 标准。 | 
| MARGINAL_RULE | 说明从父节点到节点的路径的 XML 片段。 | 
| NODE_PROBABILITY | 路径在节点中结束的概率。 | 
| MARGINAL_PROBABILITY | 从父节点到达该节点的概率。 | 
| NODE_DISTRIBUTION | 包含说明节点中值分布的统计信息的表。 | 
| NODE_SUPPORT | 支持此节点的事例数。 | 
示例
下面的代码返回已添加到目标邮件挖掘结构的决策树模型的父节点 ID。
SELECT MODEL_NAME, NODE_NAME FROM [TM Decision Tree].CONTENT  
WHERE NODE_TYPE = 1  
预期的结果:
| MODEL_NAME | NODE_NAME | 
|---|---|
| TM_DecisionTree | 0 | 
以下查询使用 IsDescendant 函数返回上一个查询中返回的节点的直接子级。
注意
由于NODE_NAME的值是字符串,因此不能使用子选择语句将NODE_ID作为 IsDescendant 函数的参数返回。
SELECT NODE_NAME, NODETYPE, NODE_CAPTION   
FROM [TM Decision Tree].CONTENT  
WHERE ISDESCENDANT('0')  
预期的结果:
由于该模型是一个决策树模型,所以模型父节点的后代中包含一个边际统计信息节点、一个表示可预测属性的节点以及多个包含输入属性和值的节点。 有关详细信息,请参阅决策树模型的挖掘模型内容(Analysis Services - 数据挖掘)。
使用 FLATTENED 关键字
挖掘模型内容常常将模型的相关重要信息包含在嵌套表列中。 您可以使用 FLATTENED 关键字,从嵌套表列中检索数据,而无需使用支持分层行集的提供程序。
下面的查询从 Naïve Bayes 模型返回一个单个节点:边际统计信息节点 (NODE_TYPE = 26)。 此节点的 NODE_DISTRIBUTION 列中包含一个嵌套表。 因此,对该嵌套表列进行了平展,对于该嵌套表的每一行,均相应地返回了一行。 对于该嵌套表中的每一行,标量列 MODEL_NAME 的值都重复了一次。
另请注意:如果只指定嵌套表列的名称,则将会针对嵌套表中的每一列返回一个新列。 默认情况下,嵌套表的名称作为每个嵌套表列名称的前缀。
SELECT FLATTENED MODEL_NAME, NODE_DISTRIBUTION  
FROM [TM_NaiveBayes].CONTENT  
WHERE NODE_TYPE = 26  
示例结果:
| MODEL_NAME | NODE_DISTRIBUTION.ATTRIBUTE_NAME | NODE_DISTRIBUTION.ATTRIBUTE_VALUE | NODE_DISTRIBUTION.SUPPORT | NODE_DISTRIBUTION.PROBABILITY | NODE_DISTRIBUTION.VARIANCE | NODE_DISTRIBUTION.VALUETYPE | 
|---|---|---|---|---|---|---|
| TM_NaiveBayes | Bike Buyer | Missing | 0 | 0 | 0 | 1 | 
| TM_NaiveBayes | Bike Buyer | 0 | 6556 | 0.506685215240745 | 0 | |
| TM_NaiveBayes | Bike Buyer | 1 | 6383 | 0.493314784759255 | 0 | 
下面的示例演示如何使用嵌套 select 语句,仅从嵌套表返回部分列。 您可以通过对嵌套表的表名使用别名来简化显示,如下所示。
SELECT MODEL_NAME,   
(SELECT ATTRIBUTE_NAME, ATTRIBUTE_VALUE, [SUPPORT] AS t  
FROM NODE_DISTRIBUTION)   
FROM TM_NaiveBayes.CONTENT  
WHERE NODE_TYPE = 26  
示例结果:
| MODEL_NAME | T.ATTRIBUTE_NAME | t.ATTRIBUTE_VALUE | t.SUPPORT | 
|---|---|---|---|
| TM_NaiveBayes | Bike Buyer | Missing | 0 | 
| TM_NaiveBayes | Bike Buyer | 0 | 6556 | 
| TM_NaiveBayes | Bike Buyer | 1 | 6383 |