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) ステートメント リファレンス