컴퓨터 과학/[프로그래머스] SQL DB Essentials

Chapter 12 윈도우 함수와 그룹함수

계란💕 2022. 3. 29. 10:46

1. SQL 내장 함수

  - 단일행 내장 함수: 함수의 입력이 단일행

    -> 문자형/ 숫자형/ 날짜형/ 변환형/ NULL관련, 정규식 함수

  - 다중행 내장 함수

     -> 집단함수:  그룹 별로 통계치

     -> 윈도우 함수: 투플 별로 통계치 + PARTITION BY, 모든 투플에 각각 적용, 파티션의 모든 투플들을 리턴한다.

     -> 그룹함수: 레벨 별로 통계치 제공 (그룹마다 하나의 결과 리턴)

 

 

<윈도우 함수>

  - 윈도우 함수는 서브쿼리로 바꿀 수 있다.

 

  1) 집단함수: SUM(), AVG(), COUNT(), MIN(), MAX()

  2) 순위함수

  - RANK(): 

    -> 1 2 3 3 5 5 7 7 7 7 7 7 ...

  - DENSE_RANK(): 동점자 처리, 순위는 이어지게한다.

    -> 1 2 3 3 4 4 5 5 5 5 5 5 ...

  - ROW_NUMBER()

    -> 1 2 3 4 5 6 7 8 9 ...

    -> 디폴트는 ROWS

 

 

  - Pagination

  - 파티션 별로 top-N행을 검색

 

  3) 비율함수

  - PERCECT_RANK(): 전체 투플 개수에 대한 순위의 누적 백분율 (0 ~ 1)

  - CUME_DIST() (Cumulative distribution value): 순위를 기준으로 한, 투플 개수의 누적 백분율(0 ~ 1)

  - NTILE(): 파티션을 N개 버킷으로 분할한다.

 

  4) 행 순서함수

  - FIRST_VALUE(), LAST_VALUE()

  - LAG(), LEAD()

 

 

<그룹함수>

  1) ROLLUP() 함수

  - MySQL에서는 함수가 아닌 키워드로 구현

    -> MySQL: GROUP BY  orderYear, productLine  WITH ROLLUP

    -> 표준 SQL: GROUP BY  ROLLUP(orderYear, productLine) 

 

  2) GROUPING()

  - Super-aggrerate row에서 NULL값을 출력하는 대신 의미있는 레이블을 출력하기 위해 사용

 

 

  3) CUBE()함수

  - ROLLUP() 함수의 확장

  - CUBE()함수의 인자는 계층 구조를 형성하지 않는다.

  - MySQL은 제공하지 않는다.

 

 

 

본 게시글은 프로그래머스의 "학교 밖에서 듣는 전공 필수SQL/DB Essentials" 강의 내용을 토대로 업로드 했습니다.

 

 

[스터디/2기] 학교 밖에서 듣는 전공필수 SQL/DB Essentials

⏰마지막 할인 중 2기 일정이 맞지 않다면 오픈 알림 신청하고 최저가에 수강하세요! 오픈 알림 신청 개발자에게 데이터베이스를 이해하는 능력은 필수! 데이터베이스의 기본 개념부터 ERD를 읽

programmers.co.kr

https://programmers.co.kr/learn/courses/13484