2017-01-09 5 views
2

다음 테이블을 포함하는 테이블이 있는데, 아래 출력을 얻기 위해 이들을 그룹화하려고합니다. 가능한가?여러 행을 함께 그룹화하십시오.

id에 의해

입력

ID Value1 Value2 Value3 
5  Y   NULL  NULL 
5  NULL  1   NULL 
5  NULL  NULL  USA 
5  NULL  NULL  NULL 
6  N   NULL  NULL 
6  NULL  2   NULL 
6  NULL  NULL  GBP 
6  NULL  NULL  NULL 

출력

ID  Value1  Value2  Value3 
5  Y   1   USA 
6  N   2   GBP 
+1

이 결과를 생성 한 원래 쿼리를 게시 할 수 있습니다. 지금은 단순한'Group by'와'Min/Max' aggregate로 결과를 얻을 수 있습니까 –

답변

6

그룹과

select id, 
     max(value1) as value1, 
     max(value2) as value2, 
     max(value3) as value3 
from your_table 
group by id 

가 BTW 당신이 변화에 대해 생각해야한다 각 그룹 당 null 이외의 값을 얻을 수 max()를 사용 당신은 테이블 디자인. 정규화되지 않았습니다.

+0

또한 PIVOT을 사용할 수도 있습니다. 그러나 나는이 구식 접근 방식을 선호합니다. –

+0

그리고이 쿼리는 모든 DB 엔진에서 작동합니다. –

관련 문제