관리 메뉴

클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지

그룹 함수와 윈도우 함수 7 - 그룹 함수 2~3 : ROLL UP, CUBE, GROUPING SETS 본문

알고리즘 및 자료 관리/SQL

그룹 함수와 윈도우 함수 7 - 그룹 함수 2~3 : ROLL UP, CUBE, GROUPING SETS

huenuri 2024. 10. 24. 15:02

그룹 함수에 대해서 이어서 학습해 보겠다. 이 단원 학습만 마치면 거의 모든 과정이 끝난다.


 

 

 

이론 7 - 그룹 함수 : ROLL UP, CUBE

 

 

 

 

 

 

 

DEPARTMENT_NAME을 기준으로 전체 값에 대한 평균을 구한다.

 

 

 

 

 

CUBE 함수는 ROLL UP의 합이라고 보면 된다. 조금 전에 ROLL UP 함수에서 ROLL UP(D.NAME, J.NAME)과 ROLL UP(J.NAME, D.NAME)의 값이 달랐다. 하지만 CUBE는 이 둘을 합쳐준다. 그러면 CUBE(D.NAME, J.NAME) 값이 된다.

 

 

 

 

 

 

 

 

 

마리아 DB에서는 CUBE를 지원하지 않는다. ROLL UP 2개를 UNION을 통해 합쳐서 표현할 수 있다.


 

 

 

 

 

실습 8 - 그룹 함수 : ROLL UP

 

 


 

 

 

 

1. 테이블 조회하기

 

 

 

BOOK_HISTORY 테이블에는 책 ID, 책 이름, 책 종류, 책 카테고리, 판매 개수 정보가 담겨있다. 책 종류와 책 카테고리 묶음 별 판매개수를 알고자 하는데, 책 종류 기준으로의 판매개수 정보와 전체 판매개수 정보도 함께 표시하려 한다.

책 판매 기록에서, 책 종류와 책 카테고리를 기준으로 GROUP BY를 이용해 그룹화하고 ROLLUP을 이용하여 총 판매 개수를 구하는 쿼리를 작성하면 될 것이다.


 

 

 

 

 

2. 책 종류와 책 카테고리를 기준으로 책 종류, 책 카테고리, 판매 개수 합을 조회하기

 

 

 

책 종류별로 잘 조회되었다.

 


 

 

 

 

이론 8 - 그룹 함수 : GROUPING SETS

 

 

 

 

 

 

 

컬럼별로 개별적인 통계를 생성해 준다.

 

 

 

 

 

MariaDB에서 사용하는 코드이다. UNIONALL로 합쳐주면 GROUPING SETS와 동일한 결과이다.


 

 

 

 

퀴즈 7 - 그룹 함수

 

 

 


 

 

 

학습을 마치고

드디어 모든 학습을 마치고 미션 문제만을 남겨놓고 있다. 이 시간이 가장 뿌듯하고 기쁘다. 어제 3주 차 학습을 마쳤을 때 어느 세월에 4주 차 공부를 다 할 수 있을지 의문이었다. 근데 이렇게 하나씩 한 걸음씩 가다 보면 어느새 목적지에 도달하게 된다.

매일 공부를 하는 것도 마찬가지다. 하기 싫은 날도 있고 몸이 도저히 따라주지 않는 날도 있다. 요 며칠 그런 날이 있었지만 죽을 만큼 힘들지 않으면 참고 이겨내고 해 본다. 그러면 충분히 할 수 있는 일이었음을 알게 된다.

 

오늘도 공부할 수 있어서 감사하다. 나의 학습일지를 읽는 사람은 거의 없겠지만 이 모든 공부는 다른 사람에게 보여주기 위함이 아닌 나 자신을 위해 하는 일이다.