Today I Learned (TIL)/SQL

[TIL] 엑셀보다 쉽고 빠른 SQL - 5주차

신짜린 2024. 6. 28. 20:42

1. 조회한 데이터에 아무 값이 없다면  또는 상식적이지 않은 값을 가지고 있다면 어떻게 해야할까?

- 데이터가 없을 때의 연산 결과 변화 케이스

 1) 없는 값을 제외해주기

 2) 다른 값을 대신 사용하기

 ▷ 다른 값이 있을 때 조건문 이용하기 : if(rating>=1, rating, 대체값)

 ▷ null 값일 때 : coalesce(age, 대체값)

- 데이터가 상식적이지 않은 값을 가지고 있을 때

 1) 조건문으로 값의 범위를 지정하기

 

2. 업무 시작을 단축시켜 주는 마법의 문법 (Window Function - RANK, SUM)

- Window Function의 사례와 기본 구조

 Window Function은 각 행의 관계를 정의하기 위한 함수로 그룹 내의 연산을 쉽게 만들어 준다.

 기본 SQL 구조로 해결하기 위해서는 복잡하게 Subquery문을 이용하거나, 여러번의 연산을 수행해줘야 하지만, 자체적으로 제공해 주는 기능을 이용하면 편리하다. 이 기능이 Window Function이다.

window_function(argument) over (partition by 그룹 기준 컬럼 order by 정렬 기준)

-- window_function : 기능 명을 사용해줍니다. (sum, avg 와 같이 기능명이 있습니다)
-- argument : 함수에 따라 작성하거나 생략합니다.
-- partition by : 그룹을 나누기 위한 기준입니다. group by 절과 유사하다고 생각해주시면 됩니다.
-- order by : window function 을 적용할 때 정렬 할 컬럼 기준을 적어줍니다.

 

3. 날짜 포맷과 조건까지 SQL로 한 번에 끝내기 (포맷 함수)

 - SQL연산은 숫자, 문자 외에 날짜까지 가능

날짜 데이터는 년, 월, 일, 시, 분, 초 등의 값을 모두 갖고 있으며 목적에 따라 '월', '주', '일' 등으로 포맷 변경이 가능하다.