공부/패스트 캠퍼스 챌린지

코딩테스트 - 패스트캠퍼스 챌린지 41일차

kNOwAnswer 2022. 3. 5. 23:41

수강한 강의

Part 4. SQL

Chapter 02. 문법 설명
- 순위 집계 (rank, dense-rank, row-number)
- 조인 (inner, outer, full outer, self, cross)

학습 후기

순위 집계

1. RANK

SELECT
    RANK() OVER(PARTITION BY [그룹할 컬럼들] ORDER BY [순위를 매길 때 사용할 컬럼들])
FROM
    TABLE

순위를 매길 때 같은 점수가 나오면 같은 등수를 주고 그다음 등수에 같은 등수 바로 다음 등수의 순위가 아닌 같은 등수의 합을 지난 등수를 준다.

예) 1등(100점), 2등(90점), 3등(85점), 3등(85점), 3등(85점), 6등(80점), 7등(79점)...

 

2. DENSE_RANK

SELECT
    DENSE_RANK() OVER(PARTITION BY [그룹할 컬럼들] ORDER BY [순위를 매길 떄 사용할 컬럼들)
FROM
    TABLE

순위를 매길 때 같은 점수가 나오면 같은 등수를 주고 그다음 등수에 같은 등수 바로 다음 등수의 순위를 부여한다.

예) 1등(100점), 2등(90점), 3등(85점), 3등(85점), 3등(85점), 4등(80점), 5등(79점)...

 

3. ROW_NUMBER

SELECT
    ROW_NUMBER() OVER(PARTITION BY [그룹할 컬럼들] ORDER BY [순위를 매길때 사용할 컬럼들])
FROM
    TABLE

같은 등수라도 동등 순위 없이 순위를 매긴다.

예) 1등(100점), 2등(90점), 3등(85점), 4등(85점), 5등(85점), 6등(80점), 7등(79점)...

 

조인

1. INNER JOIN

집합의 교집합이라고 생각하면 편하다. 조인하는 양쪽 테이블 모두 존재하는 데이터만 보여준다.

SELECT
    A.ID
    A.NAME
    B.AGE
FROM
    TABLE A
INNER JOIN TABLE B
    A.NAME = B.NAME

2. OUTER JOIN

LEFT OUTER JOIN의 경우 FROM 테이블을 기준으로 FROM 테이블 데이터가 JOIN 테이블에 없을 경우 null로 표시,

RIGHT OUTER JOIN의 경우 JOIN 테이블을 기준으로 JOIN 테이블 데이터가 FROM 테이블에 없을 경우 null로 표시

 

3. FULL OUTER JOIN

FROM 테이블, JOIN 테이블 상관없이 값이 존재하면 보여주고, 값이 존재하지 않는다면 null로 보여준다.

 

4. SELF JOIN

자기 자신을 JOIN 하므로 꼭 alias를 사용하여 명시해 주어야 한다. 

 

5. CROSS JOIN

A X B로 A 테이블의 행의 수 * B테이블의 행수만큼의 데이터가 나오기에

두 테이블의 모든 경우의 수가 나오며 데이터 수가 많을수록 많은 부하를 주게 된다.

 

수강 인증샷

https://bit.ly/37BpXiC

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.

반응형