함수는 단일 및 복수 행 그리고 윈도우 함수로 나뉘며,
특정 규칙에 의해 새로운 결과값으로 반환하는 명령어이다.
단일 행 함수 - 숫자형, 문자형, 날짜형, 형 변환, 일반 #모든 행에 대하여 각각 함수가 적용되어 반환, 중첩해서 사용가능
복수 행 함수 - 집계형, 그룹형 #여러 행들이 하나의 결과값으로 반환됨, 주로 GROUP BY와 함께 사용
윈도우 함수 - 순위, 집계(누적) #행과 행간의 관계를 정의하여 결과값을 반환
#ORDER BY로 행과 행간의 순서 지정, PARTITON BY로 그룹화
단일 행 함수
숫자형 함수
ABS(숫자) : 절대값 반환
ROUND(숫자, n) : n번째 자리까지 반올림하여 반환
SQRT(숫자) : 제곱근 값 반환
문자형 함수
LOWER(문자) : 문자를 소문자로 바꿔서 반환
UPPER(문자) : 문자를 대문자로 바꿔서 반환
LEFT(문자, n) / RIGHT(문자, n) : 왼쪽/ 아래쪽부터 n만큼 반환
LENGTH(문자) : 문자수 반환
날짜형 함수
YEAR / MONTH / DAY : 연 / 월 / 일 반환
DATE_ADD( 날짜, INTERVAL ) : INTERVAL만큼 더한 값 반환
예) SELECT DATE_ADD('2022-12-31', INTERVAL -1 MONTH); #한달을 뺀 2022-11-30이 출력됨
DATEDIFF( 날짜1, 날짜2 ) : 날짜1 - 날짜2 일수 반환
형변환 함수
DATE_FORMAT(날짜, 형식) : 날짜 형식으로 변환
예) SELECT DATE_FORMAT('2022-12-31', '%m-%d-%y);
-> 12-31-22 출력
SELECT DATE_FORMAT('2022-12-31', '%M-%D-%Y);
-> December - 31st - 2022 출력
CAST( 형식 1, 형식 2) : 형식 1을 형식 2로 변환
일반 함수
IFNULL(A, B) : A가 null이면 B 반환, 아니면 A 반환
CASE WHEN 구문: 여러 조건 별로 반환값 지정 가능
예) CASE WHEN [case 1] THEN [return 1]
WHEN [case 2] THEN [return 2]
ELSE [return 3] END #case 1이면 반환값 1반환, case 1도 2도 아니라면 return 3반환
복수 행 함수
집계 함수
COUNT() : 행수 반환
COUNT(DISTINCT ~) : ~에서 중복제거된 행수 반환
SUM() : 합계 반환
AVG() : 평균 반환
MAX(): 최댓값 반환
MIN(): 최솟값 반환
그룹 함수
WITH ROLLUP : GROUP BY 열들을 오른쪽에서 왼쪽 순으로 그룹화 # 소계 및 합계 조회
윈도우 함수
함수 OVER (ORDER BY 기준열 ASC / DESC)
함수 OVER (PARTITION BY 열 ~)
순위 함수
ROW_NUMBER(): 동일한 값이라도 고유한 순위 반환
RANK(): 동일한 값이면 동일한 순위 반환 (1,2,3,3,5 ... )
DENSE_RANK(): 동일한 값이면 동일한 순위 반환 ( 하나의 등수로 취급 / 1,2,3,3,4... )
집계 함수(누적)
COUNT() : 누적횟수
SUM() : 누적합
AVG() : 누적평균
MAX() / MIN() : 누적 최댓값/최솟값
'SQL' 카테고리의 다른 글
View 및 Procedure (0) | 2021.10.28 |
---|---|
SQL활용 - 연산자 및 함수(1) (0) | 2021.10.28 |
2-3. 트렌젝션 제어어 (0) | 2021.10.03 |
2-2. 데이터 제어어 (0) | 2021.10.02 |
2-1. 데이터 조작어 (0) | 2021.10.02 |
2. SQL 명령어 (0) | 2021.10.02 |