2013-11-22 2 views
0

모든 고유 레코드와 해당 열을 데이터베이스에서 가져올 수 있습니까? 같은모든 고유 레코드 및 해당 열 가져 오기

뭔가 :

SELECT DISTINCT * 
FROM table_name 
?where? 

나는 해당 열의 모든 고유 한 기록을 싶어.

내가 시도 :

SELECT distinct(column_name), other_column 
FROM table_name 
?where? 

나는 여전히 중복 레코드를 얻을.

내가 시도 :

SELECT distinct(column_name) 
    FROM table_name 
    ?where? 

내가 유일한 기록하지만 불완전한 열을 얻는다. 어떻게 열이있는 모든 고유 레코드를 얻을 수 있습니까?

+0

는 당신이 어딘가에 각각의 고유 한 행 또는 각각의 고유 한 값을 원하십니까이다 사용할 수 있습니다 테이블에? 예 : 행 1 = 1, a, 11/21/2013; 행 2 = 2, a, 11/22/2013 결과가 해당 열 이름과 함께 1, 2, a, 11/21/2013, 2013 년 11 월 22 일을 반환하도록 하시겠습니까? – ChicagoRedSox

+0

열이 다음과 같이 있다고 가정 해 봅시다 : (pk, fk_id, 이름, 날짜). 나는 row1 = 1, 1, a, 2010; row2 = 2, 2, b, 2010; row3 = 3, 1, a, 2011; 출력을 row1 = 1, 1, a, 2010; row2 = 2, 2, b, 2010. – xyxy

+0

나는 그렇게 생각한다. 당신의 논리를 볼 수 있을까요? 나는 그것을 시험해보고 싶다. 두 번째 열의 모든 레코드에서 1, a, 11/21/2013을 반환 할 수 있습니까? – xyxy

답변

1

당신이 뭔가를 찾고 계십니까? 여기

SELECT t.* 
    FROM 
(
    SELECT MIN(pk_id) pk_id 
    FROM table_name 
    GROUP BY fk_id 
) q JOIN table_name t 
    ON q.pk_id = t.pk_id 

SQLFiddle 데모

포스트 그레스에서

당신이 여기 DISTINCT ON

SELECT DISTINCT ON (fk_id) t.* 
    FROM table_name t 
ORDER BY fk_id 

SQLFiddle 데모

+0

@xyxy 도움이 되셨습니까? 질문에 대한 도움이 더 필요하십니까? – peterm

관련 문제