[SQL] SQL 공부하기 : 함수
∇ My SQL의 함수 정리 : 단일행/ 복수행/ 윈도우 함수
함수.
: 단일 및 복수행 그리고 윈도우 함수로 나뉘며, 특정 규칙에 의해 새로운 결과값으로 반환하는 명령어.
1. 단일행 함수.[Single-Row Functions] - 숫자,문자,날짜, 형 변환, 일반
: 각 행에 개별적으로 적용되어 하나의 결과를 반환하는 함수입니다.
주로 문자열 처리, 수치 계산, 날짜 처리 등에 사용됩니다.
1-1. 문자열 함수.
- UPPER(str) : 문자열을 대문자로 변환.
- LOWER(str) : 문자열을 소문자로 변환.
- LEFT(문자, N) : 왼쪽부터 N만큼 반환
- RIGHT(문자,N): 오른쪽부터 N만큼 반
- LENGTH(str) : 문자열의 길이를 반환.
- SUBSTGRING(str, start, length) : 문자열의 일부를 추출.
1-2. 숫자 함수.
-ROUND() : 숫자를 반올림.
- ABS(num) : 절대값을 반환.
- CEIL(num) : 올림
- FLOOR(num) : 내림.
1-3. 날짜 함수.
- NOW() : 현재 날짜와 시간을 반환.
- CURDATE() : 현재 날짜를 반환.
- YEAR(date) : 연도 추출.
- MONTH(date) : 월 추출
- DAY(date) : 일 추출
- DATE_ADD(날짜, INTERVAL) : INTERVAL만큼 더한 값 반환
- DATEDIFF(날짜a, 날짜b) : 날짜a-날짜b 일수 반
1-4, 형변환 함수.
-DATE_FORMAT(날짜,형식) :날짜형식으로 변환.
-CAST(형식a, 형식b) : 형식a를 형식b로 변환
1-5 일반 함수.
-IFNULL(A,B) : A가 NULL이면 B를 반환, 아니면 A 반환
-CASE WHEN THEN~ELSE: 여러 조건별 반환
#단일 행 함수의 특징.
- 단일 행 함수는 모든 행에 대하여 각각 함수가 적용되어 반환합니다.
- 함수들을 중첩해서 사용가능합니다.
2. 복행 함수.[Aggregate Functions] - 집계형, 그룹
:복수 행 함수는 여러 행을 입력으로 받아 하나 결과를 반환합니다.
주로 집계 연산에 사용됩니다.
2-1. 집계 함수
- COUNT(*) : 행의 수를 계산
- SUM(column) : 합계를 계산
- AVG(column) : 평균을 계산
- MAX(column) : 최대값을 찾음.
- MIN(column) : 최소값을 찾음.
2-2 그룹함수.
-WITH ROLLUP : GROUP BY 열들을 오른쪽에서 왼쪽순으로 그룹
: GROUP BY(열1,열2) WITH ROLLUP
#복수 행 함수 특징.
- 복수 행 함수는 여러 행들이 하나의 결과값으로 반환.
- 주로 GROUP BY절과 함께 사용됩니다.
3. 윈도우 함수.[Window Functions]. -순위, 집계누적.
: 윈도우(부분집합) 함수는 여러 행에 걸쳐 수행되지만 각 행에 대해 독립적으로 결과를 반환합니다.
윈도우 함수는 주로 데이터 분석과 통계 계산에 사용됩니다.
ORDER BY로 행과 행간의 순서를 정하며, PARTITION BY로 그룹화가 가능합니다.
- ROW_NUMBER() : 각 행에 고유한,순차적인 번호를 할당.
- RANK() : 동일한 값에 대해 같은 순위를 부여(다음 순위는 건너뜀)
- DENS_RANK(): RANK와 유사하지만 다음 순위를 건너뛰지 않음.
- LEAD(column, offset) : 현재 행을 기준으로 다음 행의 값을 참조.
- LAG(column, offset) : 현재 행을 기준으로 이전 행의 값을 참조.