마케터의 SQL 학습기 : 일반함수

2022. 5. 13. 21:50Work, 일/SQL

요약
- 일반함수
- 일반함수 : 조건분기 함수 case
- 일반함수 : 형태변환 함수 cast
- 일반함수 : 날짜함수 date_diff / format_datetime / format_date
- 일반함수 : 문자함수 substring / left

 

일반함수

- 반복되는 데이터 처리를 효율적으로 처리 가능

- 오라클 내에서 정의한 함수 중 다루는 행의 숫자에 따라서 2가지 함수로 구분

1) 단일함수 : 행마다 하나씩 하나의 결과를 검색하는 함수

2) 그룹함수(다중행함수, group by) : 조건절에 만족하는 모든 행을 묶어 한번에 연산(계산)하는 함수

 

일반함수 : 조건분기 함수 case

- 작성방법 :

case

when '조건1' then '결과1'

when '조건2' then '결과2'

else '결과3'

end as 별칭

- 해석 : ~이라는 조건(when)에 맞을 때는 ~로(then), 어떤 조건도 맞지 않을 때는~로 (else)

- 위에서부터 순서대로 차례차례 체크해서 적용된다는 사실에 주의

1) 조건1에 해당하면 결과 1을 반환

2) 1) 수행 후 남은 데이터에서 조건2에 해당하면 결과 2를 반환

3) 2번까지 수행 후 남은 데이터는 결과 3으로 반환

 

일반함수 : 형태변환 함수 cast

- 원본데이터는 동일하게 유지하고, SQL 실행할 때 임시로 변환시켜주는 함수. 즉 함수 사용을 위해서 형태변환이 필요한 경우 사용

ex) 321은 숫자 타입, '321'은 문자타입으로 각 테이블의 컬럼은 정해진 데이터형이 있음. 이를 문자형 > 날짜형, 날짜형 > 문자형, 문자형 > 숫자형 등 함수 사용에 따라서 데이터형 타입 변경 필요

- 데이터 전처리 시 주로 사용

- 단, 일일이 테이블 내 데이터타입을 외워서 cast로 전처리해주기보다 오류메시지를 보고 바꾸는 게 빠를 수 있다

 

일반함수 : 날짜함수 date_diff / format_datetime / format_date

- 컬럼이 날짜타입일 때 사용 가능 (아닐 땐 cast로 변환시켜야 함)

- 시계열 데이터 분석 시 활용도가 높은 함수

- 고객나이 산출, 시계열 분석, 고객 구매주기 분석에서 활용 가능
- 더 많은 날짜함수는 구글 가이드 참고 : https://cloud.google.com/bigquery/docs/reference/standard-sql/date_functions

크리에이터 윤혜님의 클래스101 SQL 강의 화면 캡쳐

 

일반함수 : 문자함수 substring / left

- 컬럼이 문자형일 때 특정 위치에 있는 문자를 추출해올 때 사용

- 컬럼 내 값을 분리하기 위한 용도

- substring(컬럼명, n번째, n개) : 문자 추출해오기. '컬럼명' 내에서 n번째 위치부터 n개의 문자 추출

- left(컬럼명, n개) : '컬럼명' 내의 왼쪽부터 n개의 문자 추출