SELECT DISTINCT FROM <model > (DMX)

適用: SQL Server Analysis Services

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

構文

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

引数

n
省略可能。 返す行数を指定する整数。

式リスト
関連する列識別子 (モデルから派生) または式のコンマ区切りのリスト。

model
モデル識別子。

条件リスト
列リストから返される値を制限する条件。

式 (expression)
省略可能。 スカラー値を返す式。

注釈

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

SELECT DISTINCT FROM ステートメントを使用すると、入れ子になったテーブル内の列を直接参照できます。 次に例を示します。

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

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

列の型 出力
離散 列の一意の値。
Discretized 列内の分離された各バケットの中間点。
継続的 列の値の中間点。

不連続列の例

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

SELECT DISTINCT [Gender]  
FROM [TM Decision Tree]  

結果の例:

性別
F
M

不連続値を含む列の場合、結果には常に Null 値として表示される Missing 状態が含まれます。

連続列の例

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

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

結果の例:

Midpoint Age Minimum Age 最大有効期間
62 26 97

また、欠落値を表すために、クエリは null 値の 1 行を返します。

離散化列の例

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

注意

また、基本的なマイニング チュートリアルで作成したマイニング モデルを変更して、 [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 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 値の追加行に分離されていることがわかります。

結果の小数点以下表示桁数は、クエリに使用するクライアントによって異なります。 ここでは、わかりやすくするためと、SQL Server Data Tools (SSDT) に表示される値を反映するために、小数点以下 2 桁に丸められています。

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

年齢 >=69 年収入 < 39221.41

注意

最小バケットの最小値および最大バケットの最大値は、計測された値のうちの最大値と最小値になります。 この観測範囲を超える値は、最小バケットと最大バケットに属するものと見なされます。

参照

SELECT (DMX)
データ マイニング拡張機能 (DMX) データ操作ステートメント
データ マイニング拡張機能 (DMX) ステートメント リファレンス