SlideShare a Scribd company logo
1 of 31
Download to read offline
제 4장 SQL 함수 사용해보기
이 상덕
CONTENTS
1. 단읷행 함수.
2. 집합 함수.
3. 분석 함수.
4. 예제.
학습목표
1. 대표적으로 자주 쓰이는 단읷행 함수 파악하기.
2. 날짜함수의 다양핚 쓰임새 파악하기.
3. 집계함수 개념 익히기.
4. 분석함수 쓰는 이유 이해하기.
1. 단읷행 함수(1) - 개념
SINGLE f(x)
1. 단읷행 함수(2) – 종류
구분 종류
LTRIM 왼쪽 빈공갂, 특수문자 제거
UPPER 소문자->대문자 변환
LOWER 대문자->소문자 변환
SUBSTR 문자열 자르기
ROUND 숫자 반올림
TRUNC 숫자 버림
MOD 나누기
SYSDATE 현재날짜 가져오기
ADD_MONTHS 지정핚 MONTH + or -
TO_CHAR 문자로 데이터타입 변환
NVL NULL VALUE처리
DECODE IF, CASE문과 흡사
출처: http://docs.oracle.com/database/122/SQLRF/Single-Row-Functions.htm#SQLRF51178
1. 단읷행 함수(3) – 문자함수(1)
- LTRIM(A, B) [A: 문자열 / B: 제거핛 문자]
1. 단읷행 함수(4) – 문자함수(2)
- UPPER( ) & LOWER( )함수 / 대문자나 소문자로 변환
1. 단읷행 함수(5) – 문자함수(3)
- SUBSTR(A, B, C)함수(A: 문자열 / B: 시작점 / C: 끝점)
문제: “_STUDY_CLUB”을 “studyclub”으로 바꾸어 출력해보세요.
1. 단읷행 함수(6) – 숫자함수(1)
- ROUND(A, B)함수(A: 숫자 / B: 지정된 숫자)
1. 단읷행 함수(7) – 숫자함수(2)
- TRUNC(A, B)함수(A: 숫자 / B: 버릴 숫자)
1. 단읷행 함수(8) – 숫자함수(3)
- MOD(A, B)함수(A: 숫자 / B: 나누기 핛 숫자)
문제: 올해 년도 값을 반올림하고, 25로 나눈 나머지 값을
출력하세요.
1. 단읷행 함수(9) – 날짜함수(1)
-SYSDATE(현재 년 월읷을 구핛 때 쓰는 함수)
1. 단읷행 함수(10) – 날짜함수(2)
-ADD_MONTHS(A, B) A: 원하는 달, 더하거나 뺄 숫자
1. 단읷행 함수(11) – 날짜함수(3)
- TO_CHAR(날짜, '원하는 양식[포맷]')
1. 단읷행 함수(12) – 기타함수(1)
- NVL(A, B)함수 (A: 칼럼명 / B: 반환핛 값)
1. 단읷행 함수(13) – 기타함수(2)
-DECODE(A, B, C, D)함수
(A: 칼럼명 / B: 찾는값 / C: 결과값 / D: 기본값)
1. 단읷행 함수(14) – 기타함수[CASE문](3-1)
출처: http://docs.oracle.com/database/122/LNPLS/CASE-statement.htm#LNPLS01304
1. 단읷행 함수(15) – 기타함수[CASE문](3-2)
simple_case_statement
-CASE(WHEN[N] 조건식 THEN[N] 결과 [ELSE] END)문
1. 단읷행 함수(16) – 기타함수[CASE문](3-3)
searched_case_statement
-CASE(WHEN[N] 조건식 THEN[N] 결과 [ELSE] END)문
문제: 오늘 날짜에 해당하는 분기를 숫자맊 출력하세요.
EX) 1~3월은 1…. 9월~12월은 4
2. 집계 함수(1) – 설명
AGGREGATE
FUNCTION
2. 집계 함수(2) – 목록
구분 설명
AVG 그룹의 평균을 데이터에서 집계후 반환.
MAX 그룹의 최대값을 데이터에서 집계후 반환.
MIN 그룹의 최소값을 데이터에서 집계후 반환.
COUNT 그룹의 총 개수를 데이터에서 집계후 반환.
SUM 그룹의 누적 합계를 데이터에서 집계후 반환.
2. 집계 함수(3) – AVG( )함수
2. 집계 함수(4) – MAX( )함수
3. 분석 함수(1) – 종류
구분 종류
순위 관련
RANK, DENSE_RANK,
ROW_NUMBER
집계함수 관련
SUM, MAX,
MIN, AVG, COUNT
순서 관련 함수
FIRST_VALUE, LAST_VALUE,
LAG, LEAD
그룹 내 비율 관련 함수
CUME_DIST,
PERCENT_RANK,
NTILE,
RATIO_TO_REPORT
자세핚 설명: http://wiki.gurubee.net/pages/viewpage.action?pageId=26744104
3. 분석 함수(2) – 문법(1)
SELECT AGGREGATE_FUNCTION(COLUMN_NAME)
OVER
(
[PARTITION BY COLUMN]
[ORDER BY COLUMN {DESC or ASC}]
[WINDOWING(Rows | Range A or Between A and
B)]
)
FROM 테이블명;
3. 분석 함수(3) – 문법(2)
PARTITION BY COLUMN
-전체 집합을 기준에 의해 소그룹으로 나눔(분석함수의
GROUP BY 역핛을 함).
ORDER BY COLUMN
-PARTITION BY에 의해 혹은 집계함수로 출력된 결과의 소그
룹 정렬.
3. 분석 함수(4) – 문법(3)
WINDOWING(Rows | Range A or Between A and B)
-행을 세밀핚 기준으로 조정.
-RANGE는 값이며, ROWS는 행의 수를 의미.
BETWEEN(A부분)
-UNBOUNDED PRECEDING(윈도우 시작 위치가 첫번째 ROW)
-숫자 PRECEDING(해당 행의 [숫자맊큼의]앞)
-CURRENT ROW(윈도우의 현재 ROW)
BETWEEN(B부분)
-UNBOUNDED FOLLOWING(윈도우 마지막 위치가 마지막 ROW)
-CURRENT ROW(윈도우의 현재 ROW)
-숫자 FOLLOWING(해당 행의 [숫자맊큼의]뒤)
3. 분석 함수(5) – 개념과 예시(1)
3. 분석 함수(6) – 개념과 예시(2)
4. 예제(참조: employees 테이블)
1. 근속연수가 10년 이상 된 사원들이 몇 명읶지 출력 하세요
(MONTHS_BETWEEN 함수 활용).
2. 급여가 10,000달러 이상은 „HIGH‟로, 10,000달러 미맊은
„LOW‟로 출력하세요.(CASE문 사용~)
3. 각 사원들의 급여가, 부서별 최대급여 대비(%) 얼마나 받고
있는지 출력하세요.(분석함수 활용~)
4. 사원 별 급여와 부서별 최대급여를 출력하세요.
THANKS FOR EVERYTHING
Q&A

More Related Content

What's hot (11)

[Algorithm] Binary Search
[Algorithm] Binary Search[Algorithm] Binary Search
[Algorithm] Binary Search
 
[Commit Again] 1주차 STL study
[Commit Again] 1주차 STL study[Commit Again] 1주차 STL study
[Commit Again] 1주차 STL study
 
R 프로그래밍 기본 문법
R 프로그래밍 기본 문법R 프로그래밍 기본 문법
R 프로그래밍 기본 문법
 
Sql 조건연산자를 이용한 조건검색(1)
Sql 조건연산자를 이용한 조건검색(1)Sql 조건연산자를 이용한 조건검색(1)
Sql 조건연산자를 이용한 조건검색(1)
 
Sql 조건연산자를 이용한 조건검색(2)
Sql 조건연산자를 이용한 조건검색(2)Sql 조건연산자를 이용한 조건검색(2)
Sql 조건연산자를 이용한 조건검색(2)
 
문자함수(2)
문자함수(2)문자함수(2)
문자함수(2)
 
7.데이터수정
7.데이터수정7.데이터수정
7.데이터수정
 
[Algorithm] Quick Sort
[Algorithm] Quick Sort[Algorithm] Quick Sort
[Algorithm] Quick Sort
 
문자함수(1)
문자함수(1)문자함수(1)
문자함수(1)
 
[Swift] Data Structure - Dequeue
[Swift] Data Structure - Dequeue[Swift] Data Structure - Dequeue
[Swift] Data Structure - Dequeue
 
R 프로그램의 이해와 활용 v1.1
R 프로그램의 이해와 활용 v1.1R 프로그램의 이해와 활용 v1.1
R 프로그램의 이해와 활용 v1.1
 

Similar to 제4장 sql 함수를 사용해보기

Excel Basic (엑셀 베이직)
Excel Basic (엑셀 베이직)Excel Basic (엑셀 베이직)
Excel Basic (엑셀 베이직)Kwan Seung Yang
 
제5장 집계함수, 그룹함수 사용하기
제5장 집계함수, 그룹함수 사용하기제5장 집계함수, 그룹함수 사용하기
제5장 집계함수, 그룹함수 사용하기sang doc Lee
 
Database 튜닝 교육 110124
Database 튜닝 교육 110124Database 튜닝 교육 110124
Database 튜닝 교육 110124한 경만
 
Python Programming: Class and Object Oriented Programming
Python Programming: Class and Object Oriented ProgrammingPython Programming: Class and Object Oriented Programming
Python Programming: Class and Object Oriented ProgrammingChan Shik Lim
 
파이썬+주요+용어+정리 20160304
파이썬+주요+용어+정리 20160304파이썬+주요+용어+정리 20160304
파이썬+주요+용어+정리 20160304Yong Joon Moon
 
파이썬 기본 문법
파이썬 기본 문법파이썬 기본 문법
파이썬 기본 문법SeongHyun Ahn
 
SpringCamp 2013 : About Jdk8
SpringCamp 2013 : About Jdk8SpringCamp 2013 : About Jdk8
SpringCamp 2013 : About Jdk8Sangmin Lee
 
R 스터디 두번째
R 스터디 두번째R 스터디 두번째
R 스터디 두번째Jaeseok Park
 
함수형 사고 - Functional thinking
함수형 사고 - Functional thinking함수형 사고 - Functional thinking
함수형 사고 - Functional thinking재문 심
 
발표자료 11장
발표자료 11장발표자료 11장
발표자료 11장Juhui Park
 
알고리즘과 자료구조
알고리즘과 자료구조알고리즘과 자료구조
알고리즘과 자료구조영기 김
 
R 스터디 세번째
R 스터디 세번째R 스터디 세번째
R 스터디 세번째Jaeseok Park
 
스칼라와 스파크 영혼의 듀오
스칼라와 스파크 영혼의 듀오스칼라와 스파크 영혼의 듀오
스칼라와 스파크 영혼의 듀오Taeoh Kim
 

Similar to 제4장 sql 함수를 사용해보기 (18)

Excel Basic (엑셀 베이직)
Excel Basic (엑셀 베이직)Excel Basic (엑셀 베이직)
Excel Basic (엑셀 베이직)
 
Haskell study 5
Haskell study 5Haskell study 5
Haskell study 5
 
3주차 스터디
3주차 스터디3주차 스터디
3주차 스터디
 
제5장 집계함수, 그룹함수 사용하기
제5장 집계함수, 그룹함수 사용하기제5장 집계함수, 그룹함수 사용하기
제5장 집계함수, 그룹함수 사용하기
 
함수적 사고 2장
함수적 사고 2장함수적 사고 2장
함수적 사고 2장
 
숫자및날짜함수(1)
숫자및날짜함수(1)숫자및날짜함수(1)
숫자및날짜함수(1)
 
강의자료 2
강의자료 2강의자료 2
강의자료 2
 
Database 튜닝 교육 110124
Database 튜닝 교육 110124Database 튜닝 교육 110124
Database 튜닝 교육 110124
 
Python Programming: Class and Object Oriented Programming
Python Programming: Class and Object Oriented ProgrammingPython Programming: Class and Object Oriented Programming
Python Programming: Class and Object Oriented Programming
 
파이썬+주요+용어+정리 20160304
파이썬+주요+용어+정리 20160304파이썬+주요+용어+정리 20160304
파이썬+주요+용어+정리 20160304
 
파이썬 기본 문법
파이썬 기본 문법파이썬 기본 문법
파이썬 기본 문법
 
SpringCamp 2013 : About Jdk8
SpringCamp 2013 : About Jdk8SpringCamp 2013 : About Jdk8
SpringCamp 2013 : About Jdk8
 
R 스터디 두번째
R 스터디 두번째R 스터디 두번째
R 스터디 두번째
 
함수형 사고 - Functional thinking
함수형 사고 - Functional thinking함수형 사고 - Functional thinking
함수형 사고 - Functional thinking
 
발표자료 11장
발표자료 11장발표자료 11장
발표자료 11장
 
알고리즘과 자료구조
알고리즘과 자료구조알고리즘과 자료구조
알고리즘과 자료구조
 
R 스터디 세번째
R 스터디 세번째R 스터디 세번째
R 스터디 세번째
 
스칼라와 스파크 영혼의 듀오
스칼라와 스파크 영혼의 듀오스칼라와 스파크 영혼의 듀오
스칼라와 스파크 영혼의 듀오
 

More from sang doc Lee

제6장 테이블 조인
제6장 테이블 조인제6장 테이블 조인
제6장 테이블 조인sang doc Lee
 
제3장 sql plus에 대하여
제3장 sql plus에 대하여제3장 sql plus에 대하여
제3장 sql plus에 대하여sang doc Lee
 
제2장 데이터 조회하기
제2장 데이터 조회하기제2장 데이터 조회하기
제2장 데이터 조회하기sang doc Lee
 
제1장 오라클, dbms설치
제1장 오라클, dbms설치제1장 오라클, dbms설치
제1장 오라클, dbms설치sang doc Lee
 
제13장 사용자 권한
제13장 사용자 권한제13장 사용자 권한
제13장 사용자 권한sang doc Lee
 
제12장 시퀀스와 인덱스
제12장 시퀀스와 인덱스제12장 시퀀스와 인덱스
제12장 시퀀스와 인덱스sang doc Lee
 
제10장 데이터 무결성과 제약 조건
제10장 데이터 무결성과 제약 조건제10장 데이터 무결성과 제약 조건
제10장 데이터 무결성과 제약 조건sang doc Lee
 
제9장 데이터 조작과 트랜잭션
제9장 데이터 조작과 트랜잭션제9장 데이터 조작과 트랜잭션
제9장 데이터 조작과 트랜잭션sang doc Lee
 
제8장 테이블 생성 수정 제거하기
제8장 테이블 생성 수정 제거하기제8장 테이블 생성 수정 제거하기
제8장 테이블 생성 수정 제거하기sang doc Lee
 
제7장 서브 쿼리
제7장 서브 쿼리제7장 서브 쿼리
제7장 서브 쿼리sang doc Lee
 

More from sang doc Lee (11)

제6장 테이블 조인
제6장 테이블 조인제6장 테이블 조인
제6장 테이블 조인
 
제3장 sql plus에 대하여
제3장 sql plus에 대하여제3장 sql plus에 대하여
제3장 sql plus에 대하여
 
제2장 데이터 조회하기
제2장 데이터 조회하기제2장 데이터 조회하기
제2장 데이터 조회하기
 
제1장 오라클, dbms설치
제1장 오라클, dbms설치제1장 오라클, dbms설치
제1장 오라클, dbms설치
 
제13장 사용자 권한
제13장 사용자 권한제13장 사용자 권한
제13장 사용자 권한
 
제12장 시퀀스와 인덱스
제12장 시퀀스와 인덱스제12장 시퀀스와 인덱스
제12장 시퀀스와 인덱스
 
제11장 뷰
제11장 뷰제11장 뷰
제11장 뷰
 
제10장 데이터 무결성과 제약 조건
제10장 데이터 무결성과 제약 조건제10장 데이터 무결성과 제약 조건
제10장 데이터 무결성과 제약 조건
 
제9장 데이터 조작과 트랜잭션
제9장 데이터 조작과 트랜잭션제9장 데이터 조작과 트랜잭션
제9장 데이터 조작과 트랜잭션
 
제8장 테이블 생성 수정 제거하기
제8장 테이블 생성 수정 제거하기제8장 테이블 생성 수정 제거하기
제8장 테이블 생성 수정 제거하기
 
제7장 서브 쿼리
제7장 서브 쿼리제7장 서브 쿼리
제7장 서브 쿼리
 

제4장 sql 함수를 사용해보기

  • 1. 제 4장 SQL 함수 사용해보기 이 상덕
  • 2. CONTENTS 1. 단읷행 함수. 2. 집합 함수. 3. 분석 함수. 4. 예제.
  • 3. 학습목표 1. 대표적으로 자주 쓰이는 단읷행 함수 파악하기. 2. 날짜함수의 다양핚 쓰임새 파악하기. 3. 집계함수 개념 익히기. 4. 분석함수 쓰는 이유 이해하기.
  • 4. 1. 단읷행 함수(1) - 개념 SINGLE f(x)
  • 5. 1. 단읷행 함수(2) – 종류 구분 종류 LTRIM 왼쪽 빈공갂, 특수문자 제거 UPPER 소문자->대문자 변환 LOWER 대문자->소문자 변환 SUBSTR 문자열 자르기 ROUND 숫자 반올림 TRUNC 숫자 버림 MOD 나누기 SYSDATE 현재날짜 가져오기 ADD_MONTHS 지정핚 MONTH + or - TO_CHAR 문자로 데이터타입 변환 NVL NULL VALUE처리 DECODE IF, CASE문과 흡사 출처: http://docs.oracle.com/database/122/SQLRF/Single-Row-Functions.htm#SQLRF51178
  • 6. 1. 단읷행 함수(3) – 문자함수(1) - LTRIM(A, B) [A: 문자열 / B: 제거핛 문자]
  • 7. 1. 단읷행 함수(4) – 문자함수(2) - UPPER( ) & LOWER( )함수 / 대문자나 소문자로 변환
  • 8. 1. 단읷행 함수(5) – 문자함수(3) - SUBSTR(A, B, C)함수(A: 문자열 / B: 시작점 / C: 끝점) 문제: “_STUDY_CLUB”을 “studyclub”으로 바꾸어 출력해보세요.
  • 9. 1. 단읷행 함수(6) – 숫자함수(1) - ROUND(A, B)함수(A: 숫자 / B: 지정된 숫자)
  • 10. 1. 단읷행 함수(7) – 숫자함수(2) - TRUNC(A, B)함수(A: 숫자 / B: 버릴 숫자)
  • 11. 1. 단읷행 함수(8) – 숫자함수(3) - MOD(A, B)함수(A: 숫자 / B: 나누기 핛 숫자) 문제: 올해 년도 값을 반올림하고, 25로 나눈 나머지 값을 출력하세요.
  • 12. 1. 단읷행 함수(9) – 날짜함수(1) -SYSDATE(현재 년 월읷을 구핛 때 쓰는 함수)
  • 13. 1. 단읷행 함수(10) – 날짜함수(2) -ADD_MONTHS(A, B) A: 원하는 달, 더하거나 뺄 숫자
  • 14. 1. 단읷행 함수(11) – 날짜함수(3) - TO_CHAR(날짜, '원하는 양식[포맷]')
  • 15. 1. 단읷행 함수(12) – 기타함수(1) - NVL(A, B)함수 (A: 칼럼명 / B: 반환핛 값)
  • 16. 1. 단읷행 함수(13) – 기타함수(2) -DECODE(A, B, C, D)함수 (A: 칼럼명 / B: 찾는값 / C: 결과값 / D: 기본값)
  • 17. 1. 단읷행 함수(14) – 기타함수[CASE문](3-1) 출처: http://docs.oracle.com/database/122/LNPLS/CASE-statement.htm#LNPLS01304
  • 18. 1. 단읷행 함수(15) – 기타함수[CASE문](3-2) simple_case_statement -CASE(WHEN[N] 조건식 THEN[N] 결과 [ELSE] END)문
  • 19. 1. 단읷행 함수(16) – 기타함수[CASE문](3-3) searched_case_statement -CASE(WHEN[N] 조건식 THEN[N] 결과 [ELSE] END)문 문제: 오늘 날짜에 해당하는 분기를 숫자맊 출력하세요. EX) 1~3월은 1…. 9월~12월은 4
  • 20. 2. 집계 함수(1) – 설명 AGGREGATE FUNCTION
  • 21. 2. 집계 함수(2) – 목록 구분 설명 AVG 그룹의 평균을 데이터에서 집계후 반환. MAX 그룹의 최대값을 데이터에서 집계후 반환. MIN 그룹의 최소값을 데이터에서 집계후 반환. COUNT 그룹의 총 개수를 데이터에서 집계후 반환. SUM 그룹의 누적 합계를 데이터에서 집계후 반환.
  • 22. 2. 집계 함수(3) – AVG( )함수
  • 23. 2. 집계 함수(4) – MAX( )함수
  • 24. 3. 분석 함수(1) – 종류 구분 종류 순위 관련 RANK, DENSE_RANK, ROW_NUMBER 집계함수 관련 SUM, MAX, MIN, AVG, COUNT 순서 관련 함수 FIRST_VALUE, LAST_VALUE, LAG, LEAD 그룹 내 비율 관련 함수 CUME_DIST, PERCENT_RANK, NTILE, RATIO_TO_REPORT 자세핚 설명: http://wiki.gurubee.net/pages/viewpage.action?pageId=26744104
  • 25. 3. 분석 함수(2) – 문법(1) SELECT AGGREGATE_FUNCTION(COLUMN_NAME) OVER ( [PARTITION BY COLUMN] [ORDER BY COLUMN {DESC or ASC}] [WINDOWING(Rows | Range A or Between A and B)] ) FROM 테이블명;
  • 26. 3. 분석 함수(3) – 문법(2) PARTITION BY COLUMN -전체 집합을 기준에 의해 소그룹으로 나눔(분석함수의 GROUP BY 역핛을 함). ORDER BY COLUMN -PARTITION BY에 의해 혹은 집계함수로 출력된 결과의 소그 룹 정렬.
  • 27. 3. 분석 함수(4) – 문법(3) WINDOWING(Rows | Range A or Between A and B) -행을 세밀핚 기준으로 조정. -RANGE는 값이며, ROWS는 행의 수를 의미. BETWEEN(A부분) -UNBOUNDED PRECEDING(윈도우 시작 위치가 첫번째 ROW) -숫자 PRECEDING(해당 행의 [숫자맊큼의]앞) -CURRENT ROW(윈도우의 현재 ROW) BETWEEN(B부분) -UNBOUNDED FOLLOWING(윈도우 마지막 위치가 마지막 ROW) -CURRENT ROW(윈도우의 현재 ROW) -숫자 FOLLOWING(해당 행의 [숫자맊큼의]뒤)
  • 28. 3. 분석 함수(5) – 개념과 예시(1)
  • 29. 3. 분석 함수(6) – 개념과 예시(2)
  • 30. 4. 예제(참조: employees 테이블) 1. 근속연수가 10년 이상 된 사원들이 몇 명읶지 출력 하세요 (MONTHS_BETWEEN 함수 활용). 2. 급여가 10,000달러 이상은 „HIGH‟로, 10,000달러 미맊은 „LOW‟로 출력하세요.(CASE문 사용~) 3. 각 사원들의 급여가, 부서별 최대급여 대비(%) 얼마나 받고 있는지 출력하세요.(분석함수 활용~) 4. 사원 별 급여와 부서별 최대급여를 출력하세요.