수강한 강의
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테이블의 행수만큼의 데이터가 나오기에
두 테이블의 모든 경우의 수가 나오며 데이터 수가 많을수록 많은 부하를 주게 된다.
수강 인증샷
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
'공부 > 패스트 캠퍼스 챌린지' 카테고리의 다른 글
코딩테스트 - 패스트캠퍼스 챌린지 43일차 (0) | 2022.03.07 |
---|---|
코딩테스트 - 패스트캠퍼스 챌린지 42일차 (0) | 2022.03.06 |
코딩테스트 - 패스트캠퍼스 챌린지 40일차 (0) | 2022.03.04 |
코딩테스트 - 패스트캠퍼스 챌린지 39일차 (0) | 2022.03.03 |
코딩테스트 - 패스트캠퍼스 챌린지 38일차 (0) | 2022.03.02 |