2014-06-18 3 views
-2

X라는 열이있는 테이블이 있습니다. X는 0에서 99까지의 숫자를 포함합니다. 그러나 중복이 있습니다 (예 : 0이 여러 개 있습니다. times!)각 열의 고유 한 값에 대해 하나의 행을 반환하는 SQL

이제 0,1,2,3 ... 99의 행을 제공하는 쿼리가 필요합니다. 하나의 쿼리로 100 개의 결과를 얻는다는 의미지만, x == 0, x == 1 ... 나는 얻는다. 그러나 그들 중의 단지 1 명!

SQL에 그런 것이 있습니까?

답변

2
select distinct x 
from your_table 

전체 레코드를 얻으려면 X 열을 기준으로 그룹화 할 수 있습니다. 그러나 당신은 당신이 원하는 다른 컬럼의 중복 값을 DB에 알려야한다. 당신이 X하여 그룹을 작성하는 경우

select x, min(y) as y 
from your_table 
group by x 

이 값은 별개의 것입니다. 다른 열의 경우 예를 들어 min()과 같이 소위 집계 함수가 필요합니다. 이는 DB에 모든 X 그룹의 최소 Y을 선택하도록 지시합니다.

+0

전체 행을 가져올 수 있습니까? –

+0

다른 행을 얻을 수 있습니다. 그러나 다른 컬럼들에 대한 값들이 다른 경우, 당신은 모든'x'를 얻을 것입니다. 그러나 레코드의 다른 값이 다르면 어떤 레코드를 얻는 지 신경 쓰지 않으면 어째 든 레코드를 가져 오는 것이 좋습니다. –

+0

Sry, 나는 당신의 코멘트를 이해하지 못합니다 ^^. 예 : x == 0 (그리고 x == 1 ....) [(x == 0, y == 17), (x == 1, y == 5), 전체 행이 필요합니다. .] –

관련 문제