본문 바로가기
개발/database

[Oracle] group by 없이 count 조회하기 (COUNT OVER PARTITION BY)

by ujin2021 2021. 11. 1.
ID NAME CAR
1 kim audi
2 lee audi
3 park benz

만약 USER_CAR 테이블이 이렇게 있고, 내가 조회하고 싶은 것은

id, name, car, count(차 종류) 라고 하자

 

일단 이 GROUP BY 가 들어가는 쿼리문을 작성해야 다음과 같은 count 결과값을 얻을 수 있다.

SELECT CAR, COUNT(*) AS COUNT FROM USER_CAR GROUP BY CAR;
CAR COUNT
audi 2
benz 1

 

하지만 ID, NAME, CAR, COUNT 이렇게 일반 컬럼과 COUNT를 같이 조회하고 싶다면?

SELECT ID, NAME, CAR, COUNT(*) AS COUNT OVER(PARTITION BY CAR) FROM USER_CAR;
ID NAME CAR COUNT
1 kim audi 2
2 lee audi 2
3 park benz 1

이렇게 COUNT OVER(PARTITION BY ) 를 사용하면 된다!

서브쿼리를 사용할 필요가 없기때문에 쿼리 길이를 줄일 수 있다.

 

참고 : https://ggmouse.tistory.com/153

 

[MSSQL] GROUP BY 없이 컬럼과 함께 COUNT를 조회해보자 (COUNT OVER)

GROUP BY 없이 컬럼값들과 함께 COUNT결과를 출력해보자 일반적으로 COUNT 함수를 사용할 때, COUNT와 함께 컬럼 값을 조회하려면 그 컬럼명들을 GROUP BY뒤에 지정해줘야한다. SELECT COL1, COl2, COL3, COUNT(..

ggmouse.tistory.com

참고 : https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=yf2121&logNo=140197829111 

 

[Oracle 내장 함수] Count () Over(Partition By 컬럼, 컬럼....)

[Oracle 내장 함수] Count () Over(Partition By 컬럼, 컬럼....) -. 오라클 카운트 오버 Count 함수...

blog.naver.com