MYSQL 을 사용 하고 있는데 단순 할것 같은데 생각보다 쉽게 되지 않아 질문을 드립니다.
아래와 같은 테이블이 1개가 있는데 Group Count를 하고자 하는데 많은 서브 쿼리를 사용하지 않고
구현하고자 합니다.... 잘안되네요 ㅠㅠ 도움 요청 드립니다.
■ 테이블(ID 와 Values 는 2개 테이블로 Join 해서 나온 결과 테이블 입니다.)
ID | VALUES |
A | 1 |
B | 1 |
C | 2 |
D | 3 |
E | 3 |
F | 3 |
■ 결과 테이블
(값에 따라 1이 2개고 2가 1개고 3이 3개인데 현재 위에 테이블이 2개 테이블로 JOIN 된 테이블이라 서브쿼리로 재 질의 하는 방법 말고 그룹 Count를 하고 싶어요 ㅠ)
ID | VALUES | CNT |
A | 1 | 2 |
B | 1 | 2 |
C | 2 | 1 |
D | 3 | 3 |
E | 3 | 3 |
F | 3 | 3 |
with t as(
select 'A' ID, 1 val from dual union all
select 'B',1 from dual union all
select 'C',2 from dual union all
select 'D',3 from dual union all
select 'E',3 from dual union all
select 'E',3 from dual union all
select 'F',3 from dual
)
select ID
,t.val
,cnt from t,
(select val,count(val)cnt from t
group by val)a
where t.val=a.val
;