2016-07-16 2 views
0

나는 같은 값이 많은 테이블을 가지고 있습니다. 내 테이블에 난 열을 기준으로 고유 값을 선택하려면.mysql : 내 행에 값을 넣고 싶습니다.

포함되어 내 문제는이이 내가 내 선택 문 column.b에 포함 할 내 선택 문

 select distinct column, sum(column.b) - column.b as amount, 
     (select column.b where column.a = tax2)as column.c 
     from table order by column 

내 테이블

column column.a column.b 
1  tax1  100 
1  tax2  200 
1  tax3  300 
2  tax1  100 
2  tax2  200 

입니다 column.a = tax2

이것은 내가 기대하는 출력입니다.

column amount column.c 
1  500 200 
2  200 200 

나는 단지 내 선택 진술에 포함시킬 수 있는지 모르겠습니다. 감사.

+1

샘플 데이터가 주어지면 결과가 의미가 없습니다. 열 C 란 무엇입니까? 금액은 어떻게 계산됩니까? –

+0

나는 이해한다고 생각한다. 집계 된 값과 집계되지 않은 값을 동일한 '선택'에 혼합하여 SQL을 잘못 사용하고 있습니다. 귀하의 질문은 실제로 이해가되지 않습니다. –

+0

'sum (column.b) - column.b'은 무엇을 의미합니까? 컬럼 1에는 'column.b'의 3 가지 값이 있는데, 하나는 빼기로되어 있습니까? – Barmar

답변

0

조건부 집계와 명시적인 group by을 사용하는 것이 좋습니다. 예를 들어 합리적인 쿼리는 다음과 같습니다

select column, 
     sum(case when a <> 'tax2' then b else 0 end) as amount, 
     sum(case when a = 'tax2' then b else 0 end) as c 
from t 
group by column; 

이 귀하의 질문에 정확하게 결과를 제공하지 않습니다. 그러나 sum(column.b)column.b을 섞어서 미확인 행에서 집계되지 않은 값을 얻었 기 때문에 질문의 결과가 불안정합니다.

+0

'a <> 'tax1'' – Barmar

+0

팁을 사용해 주신다면 결과가 나올 것 같지만 c 열의 값은 column.b에 기반을두고 column.b의 값은 tax2입니다. 그게 가능하니? –

+0

@McFeranco 두 번째'sum()'이하는 일입니다. – Barmar

관련 문제