SELECT DISTINCT FROM <model> (DMX)

モデル内の選択された列に対して可能なすべての状態を返します。返される値は、指定された列に含まれているのが不連続値か、分離された数値か、連続する数値かによって異なります。

構文

SELECT [FLATTENED] DISTINCT [TOP <n>] <expression list> FROM <model> 
[WHERE <condition list>][ORDER BY <expression>]

引数

  • n
    省略可。返す行数を指定する整数値です。

  • expression list
    関連する列識別子 (モデルより抽出) または式のコンマ区切りリストです。

  • model
    モデル識別子です。

  • condition list
    列のリストから返される値を制限する条件です。

  • expression
    省略可。スカラ値を返す式です。

説明

SELECT DISTINCT FROM ステートメントは、1 つの列または関連する列のセットでのみ動作します。この句は、関連しない列のセットでは動作しません。

SELECT DISTINCT FROM ステートメントによって、入れ子になったテーブル内の列を直接参照することができます。例 :

<model>.<table column reference>.<column reference>

SELECT DISTINCT FROM <model> ステートメントの結果は、列の型によって異なります。次の表は、サポートされている列の型およびステートメントからの出力について示しています。

列の型

出力

Discrete

列内の一意な値です。

Discretized

列内の各離散化バケットの中点です。

Continuous

列内の値の中間点です。

不連続列の例

次のコード サンプルは、「基本的なデータ マイニング チュートリアル」で作成した [TM Decision Tree] モデルに基づいています。クエリは、不連続列 Gender 内に存在する一意の値を返します。

SELECT DISTINCT [Gender]
FROM [TM Decision Tree]

例の結果を次に示します。

Gender

  

F

M

不連続値を含む列の場合、結果には、NULL 値として示される、存在しない状態が常に含まれます。

連続列の例

次のコード サンプルは、列内のすべての値の中間点、最小年齢、最大年齢を返します。

SELECT DISTINCT [Age] AS [Midpoint Age], 
    RangeMin([Age]) AS [Minimum Age], 
    RangeMax([Age]) AS [Maximum Age]
FROM [TM Decision Tree]

例の結果を次に示します。

Midpoint Age

Minimum Age

Maximum Age

  

  

  

62

26

97

クエリは、不足値を表すために、NULL 値の 1 行を返します。

離散化列の例

次のコード サンプルは、列 [Yearly Income] のアルゴリズムで作成された各バケットの中間点、最大値、および最小値を返します。この例の結果を再現するには、[Targeted Mailing] と同じマイニング構造を新しく作成する必要があります。ウィザードでは、Yearly Income 列のコンテンツの種類を Continuous から Discretized に変更します。

注意

また、「基本的なデータ マイニング チュートリアル」で作成したマイニング モデルを変更して、マイニング構造列 [Yearly Income] を分離できます。この方法については、「マイニング モデルでの列の分離を変更する方法」を参照してください。ただし、列の分離を変更した場合は、マイニング構造が強制的に再処理され、その構造を使用して作成した他のモデルの結果が変更されます。

SELECT DISTINCT [Yearly Income] AS [Bucket Average], 
    RangeMin([Yearly Income]) AS [Bucket Minimum], 
    RangeMax([Yearly Income]) AS [Bucket Maximum]
FROM [TM Decision Tree]

例の結果を次に示します。

Bucket Average

Bucket Minimum

Bucket Maximum

  

  

  

24610.7

10000

39221.41

55115.73

39221.41

71010.05

84821.54

71010.05

98633.04

111633.9

98633.04

124634.7

147317.4

124634.7

170000

[Yearly Income] 列の値が 5 つのバケットに分離されていることに加え、不足値を表すために NULL 値の行が追加されていることがわかります。

結果の小数点以下表示桁数は、クエリに使用するクライアントによって異なります。ここでは、説明を簡単にするためおよび Business Intelligence Development Studio で表示される値を反映するために、小数点以下 2 桁に丸められています。

たとえば、デシジョン ツリー ビューアを使用してモデルを参照し、収入ごとにグループ化された顧客を含むノードをクリックすると、次のノードのプロパティがツールヒントに表示されます。

Age >=69 AND Yearly Income < 39221.41

注意

最小バケットの最小値および最大バケットの最大値は、計測された値のうちの最大値と最小値になります。この計測された範囲に該当しないすべての値は、最小バケットおよび最大バケットに属していると見なされます。