2014-04-24 2 views
0

이제 유니온 3 테이블을 선택하고 아래에 표시되도록 선택하십시오.3 행 데이터가 1 ​​행 데이터가되게하는 방법

|remark|totalA|totalB|tatalC| 
----------------------------- 
| a | 123 | NULL | NULL | 

| a | NULL | 123 | NULL | 

| a | NULL | NULL | 123 | 

다음과 같이 1 행이되게하는 방법은?

|remark|totalA|totalB|tatalC| 
----------------------------- 
| a | 123 | 123 | 123 | 

내가하는 것, MIN() 같은 그룹을 시도하고 명료하지만

|remark|totalA|totalB|tatalC| 
----------------------------- 
| a | 123 | NULL | NULL | 
+0

이것은 min, max 또는 sum과 같은 집계 함수를 그룹화하고 사용하여 쉽게 해결할 수 있지만 처음에는 union 대신 조인이나 하위 쿼리를 사용하는 것이 좋습니다. +1 –

답변

2
select 
    remark, 
    sum(totalA) as totalA, 
    sum(totalB) as totalB, 
    sum(totalC) as totalC 
from the_table 
group by remark 
2

사용 sum 아래를 따라와 group by

select remark, sum(totalA), sum(totalB), sum(totalC) 
from table_name 
group by remark 
1

사용과 같은 집계 함수를 보여 기본적으로 null 제외 :

SELECT remark, MIN(totalA), MIN(totalB), MIN(totalC) 
FROM Remarks 
GROUP BY remark 
+0

+1. 합계보다 낫다. – Pramod