SELECT (DMX)

数据挖掘扩展插件 (DMX) 中的 SELECT 语句用于执行数据挖掘中的下列任务:

  • 浏览现有挖掘模型的内容

  • 根据现有挖掘模型创建预测

  • 创建现有挖掘模型的副本

  • 浏览挖掘结构

尽管该语句的完整语法很复杂,但用于浏览模型及其基础结构的一级子句可以概括如下:

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

FLATTENED

有些数据挖掘客户端无法接受数据挖掘提供程序提供的、层次结构格式的结果集。客户端可能不具备处理层次结构的能力,或者可能必须将结果存储在单一非规范化表中。若要将嵌套表数据转换为平展表数据,您必须请求平展查询结果。

若要平展查询结果,请使用 SELECT 语法和 FLATTENED 选项,如下面的示例所示:

SELECT FLATTENED <select list> FROM ...

TOP &lt;n&gt; 和 ORDER BY

可以使用表达式对查询结果排序,然后组合使用 ORDER BY 和 TOP 子句返回结果的子集。如果在确定邮件目标时,只想将结果发送给最可能的答复者,以及类似的情况,上述选项就很有用。可以将目标邮件预测查询按预测概率排序,然后只返回最前面的 <n> 个结果。

选择列表

<select list> 可包括标量列引用、预测函数和表达式。可用的选项取决于算法以及下列上下文:

  • 是否正在查询挖掘结构或挖掘模型

  • 是否正在查询内容或事例

  • 源数据是关系表还是多维数据集

  • 是否正在进行预测

在很多情况下,您可以使用别名,或者根据选择列表中的项创建简单表达式。例如,下面的示例显示一个基于模型列的简单表达式:

SELECT [CustomerID], [Last Name] + ', ' + [FirstName] AS FullName
FROM <model>.CASES

下面的示例为包含预测函数的结果的列创建一个别名:

SELECT Predict([Column1], 'Value') as Column1Prediction
FROM MyModel
JOIN <source data query>

WHERE

可以使用 WHERE 子句限制查询返回的事例数。WHERE 子句可以指定 WHERE 表达式中的列引用必须与 SELECT 语句的 <select list> 中的列引用语义相同,并且只能返回布尔表达式。WHERE 子句的语法如下:

WHERE < condition expression >

选择列表和 SELECT 语句的 WHERE 子句必须符合以下规则:

  • 选择列表必须包含一个不返回布尔值结果的表达式。可以修改该表达式,但该表达式必须返回非布尔值结果。

  • WHERE 子句必须包含一个返回布尔值结果的表达式。可以修改该子句,但该子句必须返回布尔值结果。

预测

创建预测时可以使用以下两种类型的语法:

使用第一种预测类型可以实时或按批创建复杂预测。

第二种预测类型可以对挖掘模型中的可预测列创建空预测联接,并返回该列的最可能状态。该查询的结果完全取决于挖掘模型的内容。

使用下面的语法,可在 SELECT FROM PREDICTION JOIN 语句的源查询中插入一个 select 语句。

SELECT FROM PREDICTION JOIN (<SELECT statement>) AS t, WHERE <SELECT statement>

有关创建预测查询的详细信息,请参阅预测查询 (DMX)

子句语法

由于使用 SELECT 语句进行浏览太复杂,因此按子句说明详细的语法元素和参数。有关各个子句的详细信息,请单击下面列表中的主题:

SELECT DISTINCT FROM <模型> (DMX)

SELECT FROM <model>.CONTENT (DMX)

SELECT FROM <模型>.CASES (DMX)

SELECT FROM <模型>.SAMPLE_CASES (DMX)

SELECT FROM <模型>.DIMENSION_CONTENT (DMX)

SELECT FROM <模型> PREDICTION JOIN (DMX)

SELECT FROM <模型> (DMX)

SELECT FROM <结构>.CASES