이번 강의는 아래 4개의 단원으로 구성되어 있다.
- Exploring the Olympics Dataset
- Creating Reports
- Cleaning & Validation
- Complex Calculations
[Chapter1]
- E:R 다이어그램을 보면서 테이블 간의 결합을 통한 데이터 추출을 진행했다.
- 주의할 점으로는 테이블을 결합하고 추출하는 과정에서 중복, 합산 등의 문제가 발생할 수 있으므로 데이터의 정합성을 체크하자.
[Chapter2]
효율적인 코딩 프로세스 작성하는 법
- What tables do we need to pull from?
- How should we combine the tables?
- What fields do we need to create?
- What filters need to be included?
- Any ordering or limiting needed?
[Chapter3]
JOIN을 수행하거나 집계함수를 사용할 때, 변수의 형태가 알맞지 않는다면 에러가 발생한다.
이 때, CAST() 함수를 사용해 변수들의 유형을 변경하여, 알맞은 함수를 사용할 수 있도록 하자.
- CAST(col AS DATATYPE)
한 변수 내에서 나타내는 문자열 값들이 모두 다르면, 혼동이 발생할 수가 있다.
이 때, 문자열의 다양한 함수를 사용하여 동일한 값들로 만들어주자.
NULL() 값이 존재할 때, 이를 처리하기 위한 다양한 방법들이 존재한다.
- WHERE 절에 IS NOT NULL을 사용함으로써, NULL 값이 아닌 값들만 추출한다.
- COALESCE(col, 대체할 값) 을 사용함으로써, NULL 값에 값을 추가하여 처리한다.
- CASE WHEN 을 사용함으로써, NULL 값을 처리한다.
데이터 중복이 존재할 때, 이를 처리하기 위한 다양한 방법들이 존재한다.
- 중복을 제거하는 방법
- JOIN 할 때, 조건을 더 주는 방법
- 서브쿼리를 사용하여 ROLL UP을 활용하는 방법
데이터 정합성을 확인할 때, 원본 테이블의 총 합과 쿼리 후의 총 합을 비교하면 된다.
[Chapter4]
날짜 변수가 주어졌을 때, 이전, 이후와 같은 값들을 비교하면서 계산하는 방법들이 존재한다.
- LAG(value, N) : 이전 데이터 N개를 추출
- LEAD(value, N) : 이후 데이터 N개를 추출
- OVER(ROWS BETWEEN N PRECIDING AND CURRENT ROW) : 이전 N개의 데이터부터 현재의 데이터까지 값 비교
'Algorithm > SQL' 카테고리의 다른 글
Leetcode SQL 50 - 1070. Product Sales Analysis III (1) | 2024.03.23 |
---|---|
Leetcode SQL 50 - 1321. Restaurant Growth (0) | 2024.03.23 |
[SQL] 데이터 캠프 수강 (10) - Analyzing Business Data in SQL (0) | 2021.05.09 |
[SQL] 데이터 캠프 수강 (9) - Applying SQL to Real-World Problems (0) | 2021.05.02 |
[SQL] 데이터캠프 수강 (8) - Introduction to data driven decision making (0) | 2021.04.25 |