쿼리문좀 봐주세요. 0 2 1,739

by stylebox [Oracle 기초] [2014.01.17 13:49:46]



현재 테이블

아아디 소속 이름
aa   회사 테스트
aa   회사 테스트
aa   집 테스트


아아디  전화번호 이메일
aa   00-000-000 aa.com 
aa   00-000-000 aa.com 
aa    00-000-000 aa.com 

아아디 구분
aa   null
aa    Y
aa   null

이런형식으로 되어 있구요

select 아이디,소속,이름,전화번호,이메일,구분
from
(select .......) a,
(select .......) b,
table1 a
where a.아아디=b.아아디(+)
and a.아아디=e.아아디(+)
order by a.아아디


이렇게 쿼리를 사용중인데
여기에 결혼유무가 Y가 있는 소속인경우 필드를 하나 추가해서 count값을 넣을려구 합니다.


아이디 소속 이름 전화번호 이메일 구분  갯수
aa   회사 테스트 00-000-000 aa.com  null 1
aa   회사 테스트1 00-000-000 aa.com  Y 1
aa   집 테스트2 00-000-000 aa.com  null  0

이렇게 출력되게 할려구 하는거죠
그래서
select 소속,이름,전화번호,이메일,결혼유무, (select count(구분) from table where 아이디=#id# and 소속=a.소속 and 구분 ='Y')
이렇게 카운터를 추가 했는데
이방법이 맞는지 모르겠네요.
어떤방법이 좋은방법인지 답변좀 부탁드릴꼐요

by 아쉬로케트 [2014.01.17 15:51:14]

select 소속,이름,전화번호,이메일,결혼유무, COUNT(*) OVER (PARTITION BY 소속 )

이런거..말씀하시는건지....(이해력이 딸려서 말이죠...ㅎㅎ;)

by 빈이 [2014.01.17 15:51:36]
질문이 구분이 Y 일 경우에는 1 아니면 0이라는건가요?

아우터 조인 하시고 decode 구문으로 Y일 경우에는 1 아니면 0으로 표시하는게 나을거 같습니다.
--decode(구분, 'Y', 1, 0) as cnt

지금하시는 스칼라 서브쿼리로 하실 경우 데이터가 많으면 많을 수록 느려집니다...

첫 row 는 0이여야 하는거아닌가요? 구분이 null인데;;

아이디 소속 이름 전화번호 이메일 구분 갯수
aa 회사 테스트 00-000-000 aa.com null 1
aa 회사 테스트1 00-000-000 aa.com Y 1
aa 집 테스트2 00-000-000 aa.com null 0
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입