共用方式為


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 <模型>語句的結果會根據數據行類型而有所不同。 下表描述支持的數據行類型和語句的輸出。

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

離散數據行範例

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

SELECT DISTINCT [Gender]  
FROM [TM Decision Tree]  

範例結果︰

性別
F

對於包含離散值的數據行,結果一律包含遺漏狀態,顯示為 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) 陳述式參考