2009-12-17 3 views
0

int 및 varchar를 반환하는 쿼리가 있습니다.SQL int 및 varchars로 Distinct를 선택하십시오.

결과를 고유하지만 int 중 하나만 사용해야합니다.

SELECT DISTINCT 
     t.TaskID , 
     td.[TestSteps] 
FROM SOX_Task t 
snip 

간단한 방법이 있나요?

+0

출력이 어떻게 보이겠습니까? DISTINCT를 int 열만 선택할 수 있습니까? – doza

+0

이것은 매우 모호한 질문입니다. 수행하려는 작업과 사용중인 데이터베이스에 대한 세부 정보를 제공 할 수 있습니까? –

답변

1

나는 고유 오직 하나의 int의에 의한 결과를 원한다.

이 :

SELECT DISTINCT t.taskid 
    FROM SOX_TASK t 

이 ... 독특한 TASKID 값의 목록을 반환합니다 - 모든 중복이되지 않습니다.

특정 값을 반환 할 경우

, 당신은 WHERE 절에 지정해야합니다 :
SELECT t.* 
    FROM SOX_TASK t 
WHERE t.taskid = ? 

가 특정 taskid 값으로 모든 행을 반환 할 것이다. 당신이 TASKID 값과 연관된 값의 중복하지 목록을 원하는 경우 :

SELECT DISTINCT t.* 
    FROM SOX_TASK t 
WHERE t.taskid = ? 

GROUP BY는 별개의/고유 값을 얻기의 또 다른 수단이며, 사용하는 내 취향이지만, GROUP BY를 사용하기 위해 우리가 알아야 할 테이블의 열과 원하는 그룹화.

3

DISTINCT가 작동하지 않습니다. 이렇게하면 전체 행이 복제되지 않습니다. 게다가 그랬다면 다른 열에 어떤 값을 표시할지 어떻게 결정할 수 있습니까?

원하는 항목의 GROUP BY를 구별하고 다른 집계에 적절한 집계 연산자를 적용하여 원하는 값을 얻을 수 있습니다 (예 : MIN, MAX, SUM, AVG 등).

예를 들어, 다음은 해당 작업의 최대 단계 수를 가진 작업 ID의 고유 목록을 반환합니다. 그게 네가 원하는 것과는 정확히 다를 수 있지만, 너에게 일반적인 아이디어를 줄 것이다.

SELECT t.TaskID, MAX(t.TestSteps) 
FROM SOX_Task t 
GROUP BY t.TaskID