Oracle 15 GROUP BY ~ HAVING , PARTITION BY ~

2023. 10. 10. 16:05database

실습 tbl_buy 테이블 생성

외래키 : USERID 생성

tbl_user테이블과 tbl_buy 테이블의 관계

tbl_user 테이블은 이전 실습에서 생성했다.

group by USERID - USERID 별로 묶었다

SUM(속성명) group by USERID -> USERID 별로 묶어 각 USERID 마다 모든 AMOUNT 속성의 데이터를 더한다

COUNT(속성명) group by USERID -> USERID 별로 묶고 각 USERID 마다 USERID 속성의 갯수를 출력한다

 

실습 GROUP BY 속성 HAVING 조건

 

partition by 실습

group by 속성명 - 중복이 제거되고 USERID별로 1개가 출력된다

partition by 는 group by와 달리 모든 USERID 항목을  다 볼 수 있다

 

GROUP BY 속성으로 묶으면 prodname 같은 속성이 있으면 error가 발생하지만

PARTITION BY 속성으로 묶으면 prodname 같은 속성을 출력해도 error가 없고 prodname 데이터가 출력된다

 

distinct 키워드로 중복 제거

※  시행착오 - distinct 키워드를 속성 앞에 쓰고 PRODNAME 같은 USERID 외 다른 속성이 없어야 중복이 제거된다

distinct 키워드를 속성 앞에 쓰고 PRODNAME 같은 USERID 외 다른 속성이 있으면 error는 없고 출력은 되지만 중복되는 데이터가 제거되지 않는다.

 

실습 - PARTITION BY ~ 로 총구매금액이 1000을 넘는 사용자를 출력한다

 

실습 - GROUP BY 로 제조사별로 평균가격 구하기

TO_CHAR()로 숫자를 천 단위마다 콤마 찍기