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 陳述式只能配合單一資料行或一組關聯的資料行使用。 這個子句不能配合一組未關聯的資料行使用。
SELECT DISTINCT FROM 陳述式可以讓您直接參考巢狀資料表內部的資料行。 例如:
<model>.<table column reference>.<column reference>
SELECT DISTINCT FROM <model> 陳述式的結果會因為資料行類型而異。 下表說明支援的資料行類型與陳述式的輸出。
資料行類型 |
輸出 |
---|---|
Discrete |
資料行中的唯一值。 |
分隔的 |
資料行中每個分隔式值區的中點。 |
連續 |
資料行中之值的中點。 |
分隔資料行範例
下列程式碼範例以您在 資料採礦基本教學課程 中建立的 [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 值的單一資料列,來表示遺漏值。
離散化資料行範例
下列程式碼範例會針對演算法建立的每個值區,傳回 [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 值的一個額外資料列,用以表示遺漏值。
結果中的小數位數取決於您用於查詢的用戶端。 小數位數在此處已捨入為兩個小數位數,可用於簡化,以及反映顯示在 SQL Server Data Tools (SSDT) 中的值。
例如,如果您使用決策樹檢視器瀏覽模型,然後按一下包含以收入分組之客戶的節點,下列節點屬性就會顯示在工具提示中:
Age >=69 AND Yearly Income < 39221.41
[!附註]
最小值區的最小值與最大值區的最大值剛好分別是最高與最低的觀察值。 系統會假設超出此觀察範圍的任何值都屬於最小和最大值區。