예를 들어 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