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> 문의 결과는 열 유형에 따라 달라집니다. 다음 표에서는 지원되는 열 유형 및 문의 출력 결과에 대해 설명합니다.

열 유형

출력

불연속

열의 고유 값

분할됨

열에서 분할된 각 버킷의 중간점

연속

열에서 값의 중간점

불연속 열의 예

다음 코드 예제는 기본 데이터 마이닝 자습서에서 만든 [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] 열의 값이 다섯 개의 버킷으로 분할되었고, 누락된 값을 나타내는 null 값의 열이 하나 추가되었습니다.

결과의 소수 자릿수는 쿼리에 사용하는 클라이언트에 따라 다릅니다. 여기에서는 Business Intelligence Development Studio에서 표시되는 값을 반영하기 위해 편의상 소수점 이하 두 자리로 반올림되었습니다.

예를 들어 의사 결정 트리 뷰어를 사용하여 모델을 탐색하면서 수입별로 그룹화된 고객이 들어 있는 노드를 클릭하면 도구 설명에 다음과 같은 노드 속성이 표시됩니다.

Age >=69 AND Yearly Income < 39221.41

[!참고]

최소 버킷의 최소값과 최대 버킷의 최대값은 단순히 관측 값 중 가장 높은 값과 가장 낮은 값입니다. 이러한 관측 범위에서 벗어나는 값은 최소 버킷과 최대 버킷에 속하는 것으로 간주됩니다.