2012-02-03 2 views
3

의 COUNT를 합산SQL 가입 - 다른 값

o_ID  state_abbr 
1  CT 
2  OH 
3  OH 

state_abbr state 
CT   Connecticut 
OH   Ohio 
Alabama AL 

내가보기를 만들 싶습니다 (state_abbr, 상태)입니다의 내가 두 테이블의 여러 조직과 여러 조직이다 (o_ID, state_abbr를) 상태를 가지고 상태 가정 해 봅시다

state_abbr  state  count 
CT    Connecticut 1 
OH    Ohio  2 

내가 SQL 문의 어떤 종류를 사용한다 : 즉, 각 상태에서 o_ID의 수를 보여줍니다? 내가 시도한 것은 첫 번째 상태 만 표시하고 모든 카운트를 합산 한 것입니다.

미리 감사드립니다.

답변

3
select 
    o.state_abbr, 
    s.state, 
    o.[count] 
from states s 
inner join 
(
    select state_abbr, count(*) as count 
    from orgs 
    group by state_abbr 
) o 
on s.state_abbr = o.state_abbr 
+0

[]을 (를) 제거한 즉시 작동합니다. mySQL이 대괄호를 좋아하지 않는다고 생각하십시오. 감사!! –

+0

@HPatel 죄송합니다. SQL Server를 사용하고 있다고 가정했습니다 (왜 그렇게 생각하는지 모르겠 음). 내 글이 반영되도록 수정했습니다. –

1

"GROUP BY"문을 찾고 있습니다. 여기에 계산을 위해 데이터를 그룹화하는 방법을 알려줍니다. .

SELECT 
    states.state_abbr 
    , states.state 
    , COUNT(*) 
FROM 
    orgs 
    INNER JOIN states ON states.state_abbr=orgs.state_abbr 
GROUP BY 
    state_name 
0

SELECT O.STATE_ABBR, S [주], COUNT (S. [주]) FROM 여러 조직 O : 조회의 모습, 그래서 당신은 모두 "state_abbr"및 "상태"에 의해 그룹에 필요 INNER JOIN 상태 S ON O.STATE_ABBR = S.STATE_ABBR GROUP by O.STATE_ABBR, S [상태]