데이터베이스 개발자 질문과 답변 게시판
데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.
예를 들어 select a,b,c,d,e from table where e>0
이라는 조회문을 쓴다고 가정할때 a b c d 모두 보여주면서 e에는 C와D가 중복되는 값을 가지고 있는 수를 보여주고 싶은데
어떤식으로 쿼리를 짜야 할지 모르겠습니다. group by 는 여러개 컬럼에 적용하면 제대로 작동을 안하고..
count(컬럼명) over (partition by 컬럼명) as e 로 하면 조건절의 수가 아닌 테이블 전체에 관련된 수가 나오니..
밑의표처럼 출력되게 하고 싶은데 말이죠
a b c d e ( c와d의 중복된 값을 가진것의 개수 )
1 a a1 b1 2
2 b a2 b2 2
3 c a1 b2 1
4 d a3 b3 1
5 e a4 b4 1
6 f a1 b1 2
7 g a2 b2 2
Comment 1
-
jude
2017.01.13 14:17
거의 다 하신거 같습니다만..
SELECT *,COUNT(*) OVER (PARTITION BY c,d) e
FROM TEMP_TABLE
ORDER BY a