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 語句只適用于單一資料行或一組相關資料行。 這個子句不適用於一組不相關的資料行。

SELECT DISTINCT FROM 語句可讓您直接參考巢狀資料表內的資料行。 例如:

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

SELECT DISTINCT FROM < 模型 > 語句的結果 會根據資料行類型而有所不同。 下表描述支援的資料行類型和 語句的輸出。

欄類型 輸出
離散 資料行中的唯一值。
離散 資料行中每個離散化貯體的中間點。
連續 資料行中值的中間點。

離散資料行範例

下列程式碼範例是以 [TM Decision Tree] 您在基本資料採礦教學課程 建立的模型為基礎。 查詢會傳回存在於離散資料行中的唯一值。 Gender

SELECT DISTINCT [Gender]  
FROM [TM Decision Tree]  

範例結果:

性別
F
M

對於包含離散值的資料行,結果一律包含遺漏狀態,顯示為 Null 值。

連續資料行範例

下列程式碼範例會傳回資料行中所有值的中間點、最小存留期和最長存留期。

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

範例結果:

中點年齡 最小年齡 最長使用期限
62 26 97

此查詢也會傳回 Null 值的單一資料列,以表示遺漏的值。

離散化資料行範例

下列程式碼範例會針對資料行演算法所 [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]  

範例結果:

貯體平均 貯體最小值 貯體最大值
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] 已離散化為五個貯體,再加上額外的 Null 值列,以表示遺漏值。

結果中的小數位數取決於您用於查詢的用戶端。 在這裡,它們已四捨五入為兩個小數位數,既簡單又能反映 SQL Server Data Tools (SSDT) 中顯示的值。

例如,如果您使用決策樹檢視器流覽模型,然後按一下包含依收入分組客戶的節點,工具提示中會顯示下列節點屬性:

年齡 > =69 AND 年收入 < 39221.41

注意

最小貯體最小值和最大貯體最大值只是最高和最低的觀察值。 假設落在這個觀察到範圍以外的任何值都屬於最小和最大值區。

另請參閱

SELECT (DMX)
資料採礦延伸模組 (DMX) 資料動作陳述式
資料採礦延伸模組 (DMX) 陳述式參考