次の方法で共有


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
モデル識別子。

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

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

解説

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

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

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

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

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

不連続列の例

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

SELECT DISTINCT [Gender]  
FROM [TM Decision Tree]  

結果の例:

Gender
F

不連続値を含む列の場合、結果には常に 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

また、このクエリでは、欠損値を表す 1 行の null 値も返されます。

離散化列の例

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

Note

また、基本的なマイニング チュートリアルで作成したマイニング モデルを変更して、マイニング構造列 ( [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

Note

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

参照

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