2012-10-19 2 views
3

field2에 중복 값이있는 테이블이 있고 field1에 쿼리에서 보존하려는 값이 있습니다.그룹 비 집계 필드 포함

field1 field2 
Bob  2 
Bob  2 
Bob  3 
Bob  3 

이 쿼리 GROUP BY 절을 사용

select field2 
rom table 
group by field2 

우리 모두가 내가 선택에 field1을 포함 할 수 없습니다 알다시피. 출력에 field1을 포함시켜야합니다. 이 작업을 수행하는 방법을 잘 모릅니다.

답변

2

무엇을 보존하겠습니까 field1에서 보존 하시겠습니까? MIN 값?

select field2, min(field1) field1 
    from table 
group by field2 

아마도 MAX 값입니까?

select field2, max(field1) field1, count(field2) total 
    from table 
group by field2 

집계를 지정해야합니다. 그렇지 않으면 합당하지 않습니다.

field1 field2 
Bob  2 
Jim  2 
Tim  2 

이 좋아, 그래서 당신은 field2field1를 원하는 :이 데이터를 고려한다. 출력에 field2이라는 단일 행을 제공하기 위해 field2을 그룹화합니다. 행에 (Bob, Jim, Tim) 중 3 개를 모두 가질 수는 없으므로 논리적으로 단 하나의 값 (또는 숫자 열의 평균과 같은 여러 값의 합계)을 선택하려면 합계를 설정해야합니다).

0

또 다른 옵션이 될 것

select * 
from table T 
join 
    (select field2 
    from table 
    group by field2)A 
on T.field2=A.field2