다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

Similar documents
다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins

Microsoft Word - PLSQL.doc

´ÙÁß Row °á°ú¸¦ ´ÜÀÏÇàÀ¸·Î Äĸ¶·Î ºÐ¸®ÇØ Ãâ·ÂÇÏ´Â ¹æ¹ý

5장 SQL 언어 Part II

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE

단답형 (26 회기출문제 ) 1. 아래와같은테이블이있을때아래의 SQL 결과에대해서 Oracle, SQL Server 순서로적으시오 TAB1 COL1 CHAR(10) COL2 CHAR(10) INSERT INTO TAB1 VALUES ('1',''); INSERT INT

Microsoft Word - [Unioneinc] 특정컬럼의 통계정보 갱신_ _ldh.doc

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

@OneToOne(cascade = = "addr_id") private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a

Microsoft Word - SQL튜닝_실습교재_.doc

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

빅데이터분산컴퓨팅-5-수정

13주-14주proc.PDF

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

객관식 1. 아래의쿼리를만족하는결과를가장잘설명한것은? SELECT A.* FROM HR.EMPLOYEES A, HR.EMPLOYEES B WHERE 1=1 AND A.MANAGER_ID = B.EMPLOYEE_ID AND B.SALARY >= ANY A.SALARY;

ESQL/C

BY-FDP-4-70.hwp

구축환경 OS : Windows 7 그외 OS 의경우교재 p26-40 참조 Windows 의다른버전은조금다르게나타날수있음 Browser : Google Chrome 다른브라우저를사용해도별차이없으나추후수업의모든과정은크롬사용 한

PostgreSQL 2 Uniersity of California at Berkeley ( ) 에서개발된관계형데이터베이스서버인 Ingres 가시초 ( 후에 Computer Associates 에인수됨 ) 1

Microsoft PowerPoint - Oracle Data Access Pattern.ppt

ORACLE 꼭 이 책의 내용들을 다 외울 정도로 공부하여 스스로의 지식으로 만들기 바랍 니다. 마치 작은 씨앗에서 큰 나무가 자라나는 것처럼 이 책 한 권은 작지만 이 책을 다 읽은 후에는 큰 나무가 되기를 바랍니다. 이 책은 SQL 책입니다. 그러나 SQL을 잘 작

C 언어 프로그래밊 과제 풀이

오라클 명령어 와 SQL 정리

Spring Boot/JDBC JdbcTemplate/CRUD 예제

0. Intro ORACLE 社 Oracle, My SQL, Exadata IBM 社 DB2, Informix SAP 社 ASE, IQ, ASA Microsoft 社 SQL Server Teradata 社 Teradata 공통점은? Altibase 社 Altibase

빅데이터 분산 컴퓨팅 -6

TITLE

SQL Tuning Business Development DB

MySQL-.. 1

SQL초보에서Schema Object까지

문서 템플릿

ORACLE-SQL

Microsoft Word - 05_SUBPROGRAM.doc

歯sql_tuning2

슬라이드 1

Microsoft PowerPoint - 사본 - DB06-SQL,시스템카탈로그,뷰.ppt

6장. SQL

Microsoft PowerPoint - 10Àå.ppt


SQL

Microsoft PowerPoint - chap06-1Array.ppt

adfasdfasfdasfasfadf

Bind Peeking 한계에따른 Adaptive Cursor Sharing 등장 엑셈컨설팅본부 /DB 컨설팅팀김철환 Bind Peeking 의한계 SQL 이최초실행되면 3 단계의과정을거치게되는데 Parsing 단계를거쳐 Execute 하고 Fetch 의과정을통해데이터

PowerPoint Presentation

중간고사

윈도우시스템프로그래밍

1. SQL 문의종류 2 DDL (Data Definition Language) : 데이터와그구조를정의 SQL문 CREATE DROP ALTER 내용데이터베이스객체를생성데이터베이스객체를삭제기존에존재하는데이터베이스객체를다시정의하는역할 DML (Data Manipulati

ALTIBASE HDB Patch Notes

DBMS & SQL Server Installation Database Laboratory

PowerPoint Template

Microsoft PowerPoint - 3장-MS SQL Server.ppt [호환 모드]

쉽게 풀어쓴 C 프로그래밊

Jerry Held

11장 포인터

목차 BUG DEQUEUE 의 WAIT TIME 이 1 초미만인경우, 설정한시간만큼대기하지않는문제가있습니다... 3 BUG [qp-select-pvo] group by 표현식에있는컬럼을참조하는집합연산이존재하지않으면결괏값오류가발생할수있습니다... 4

PowerPoint Presentation

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

배치프로그램에서튜닝대상 SQL 추출하기 엑셈컨설팅본부 /DB 컨설팅팀박성호 배치프로그램의성능문제를진단하기위해트레이스를사용할수없고, 개별 SQL 에대한성 능점검은비효율적인경우에어떻게배치프로그램의성능문제를제대로파악하고개선안을도 출할것인가? 복잡한로직을가지고있는프로그램 (

Microsoft PowerPoint - Java7.pptx

Microsoft PowerPoint - ch07 - 포인터 pm0415

< D53514C2CBAE42CBDC3BDBAC5DBC4ABC5BBB7CEB1D72D3130B3E2B0A3B1E2C3E2BAD0B7F9C1FD28C5EBC7D5292E687770>

OCW_C언어 기초

[ 목차 ] 5.1 데이터베이스프로그래밍개념 5.2 T-SQL T-SQL 문법 5.3 JAVA 프로그래밍 2

Microsoft Word - 03_SQL_CURSOR.doc

Microsoft Word - 04_EXCEPTION.doc

강의 개요

Lec. 2: MySQL and RMySQL

PowerPoint 프레젠테이션

FlashBackt.ppt

PowerPoint Presentation

예제소스는 에서다운로드하여사용하거나툴바의 [ 새쿼리 ]( 에아래의소스를입력한다. 입력후에는앞으로실습을위해서저장해둔다. -- 실습에필요한 Madang DB 와 COMPANY DB 를모두생성한다. -- 데이터베이스생성 US

PowerPoint 프레젠테이션

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r

RDB개요.ppt

설계란 무엇인가?

한지붕두가족 MS SQL Server 2012 Identity 와 Sequence 엑셈컨설팅본부 /SQL Server 팀이제춘 1992 년 MS 가 Windows NT 에서운용되는첫번째 SQL Server(4.2) 를 2 출시한이후 20 년이흘렀다. 그간꾸준한발전을통해

untitled

1. SQL 문의종류 2 DDL (Data Definition Language) : 데이터와그구조를정의 SQL문 CREATE DROP ALTER 내용데이터베이스객체를생성데이터베이스객체를삭제기존에존재하는데이터베이스객체를다시정의하는역할 DML (Data Manipulati

금오공대 컴퓨터공학전공 강의자료

make life game.doc

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음

슬라이드 제목 없음

객관식 1번풀이사전지식 * 비교연산자 ANY ( 서브쿼리 ) - 서브쿼리의결과에존재하는어느하나의값이라도만족하는조건을의미. 비교연산자로 " > " 를사용했다면메인쿼리는서브쿼리의값들중어떤값이라도만족하면되므로서브쿼리의결과의최소값보다큰모든건이조건을만족 - SOME 과동일 1번

PowerPoint Presentation

PowerPoint 프레젠테이션

ST128_Denali_CT-08_Tobias_Ternstrom

Microsoft Word - PLC제어응용-2차시.doc

Lab 3. 실습문제 (Single linked list)_해답.hwp

(Microsoft PowerPoint - 5\300\345.\271\256 \303\263\270\256\(8\301\266\).ppt)

Vector Space Vector space : 모든 n 차원컬럼벡터의집합 : {, :, } (, 2), (2, 5), (-2.4, 3), (2.7, -3.77), (,), 이차원공간을모두채움 : {,, :,, } (2,3,4), (3,2,-5), Vector spa

다양한 예제로 쉽게 배우는 오라클 SQL 과 PL/SQL

< 고급 C 프로그래밍및실습 > 11 장구조체실습문제 문제에대한안내 - 특별한언급이없으면문제의조건에맞지않는입력은입력되지않는다고가정하라. - 특별한언급이없으면, 각줄의맨앞과맨뒤에는공백을출력하지않는다. - 출력예시에서 는각줄의맨앞과맨뒤에출력되는공백을의미한다. - 입출력예시

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

강의 개요

윈도우시스템프로그래밍

Transcription:

다양한예제로쉽게배우는 오라클 SQL 과 PL/SQL 서진수저

3 장 SQL 복수행함수 ( 그룹함수 ) 를배웁니다 1

함수이름 의 미 사용예 COUNT 입력되는데이터들의건수를출력 COUNT(sal) SUM 입력되는데이터들의합계값을출력 SUM(sal) AVG 입력되는데이터들의평균값을출력 AVG(sal) MAX 입력되는데이터들중최고값을출력 MAX(sal) MIN 입력되는데이터들중최저값을출력 MIN(sal) STDDEV 입력되는데이터값들의표준편차값출력 STDDEV(sal) VARIANCE 입력되는데이터값들의분산값출력 VARIANCE(sal) ROLLUP 입력되는데이터들의소계값을자동으로계산해서출력아래예참조 CUBE 입력되는데이터들의소계및전체총계를자동계산후출력아래예참조 GROUPING 해당칼럼이그룹에사용되었는지여부를 1 또는 0 으로반환아래예참조 GROUPINGSET 한번의질의로여러개의그룹화가능아래예참조 LISTAGG PIVOT LAG LEAD RANK DENSE_RANK 누계집계하기 아래예참조 아래예참조 아래예참조 아래예참조 아래예참조 아래예참조 아래예참조 2

1) COUNT 함수 - 입력되는데이터의총건수를반환합니다. COUNT(*) 의결과는 Null 값을포함한결과이고 COUNT(hpage) 의결과는 Null 값을제외한결과입니다. 3

2) SUM 함수 - 입력된데이터들의합계값을구하는함수입니다. 4

3) AVG 함수 - 입력된값들의평균값을구해주는함수입니다. NULL 값자동제외. 틀린결과 NULL 값을 0 으로변환. 바른결과 5

4) MAX 함수 / MIN 함수 - 속도와성능부분에서문제가될수있으므로인덱스를활용하는방법을 사용할것을적극권장함 6

5) STDDEV 함수 / VARIANCE 함수 - STDDEV 함수는표준편차를구하는함수이고 VARIANCE 함수는분산을 구하는함수입니다. 7

2. 특정조건으로세부적인그룹화하기 (GROUP BY 절사용하기 ) 8

- Professor 테이블에서학과별로교수들의평균급여를출력하세요. 9

- Professor 테이블에서학과별, 직급별로교수들의평균급여를출력하세요. 10

- GROUP BY 절사용시주의사항 1. SELECT 절에사용된그룹함수이외의칼럼이나표현식은반드시 GROUP BY 절에사용되어야합니다. 그렇지않을경우아래와같은에러가발생합니다. 11

2. GROUP BY 절에사용된칼럼은 SELECT 절에사용되지않아도됩니다. 12

3. GROUP BY 절에는반드시칼럼명이사용되어야하며칼럼 Alias 는사용하면안됩니다. 13

3. 조건을주고검색하기 (HAVING 절사용하기 ) 14

- 평균급여가 450 이상인부서의부서번호와평균급여를구하세요. 15

4. 자동으로소계 / 합계를구해주는함수 16

6) ROLLUP 함수 자동으로소계값을구해주는함수 이부분들이 ROLLUP 에의해자동으로구해진소계부분입니다. 17

18

7) CUBE 함수 - ROLLUP 함수와같이각소계도출력하고전체총계까지출력합니다. 이부분이 ROLLUP 함수와다른전체총계출력부분입니다 19

20

5. 다른그룹핑관련함수들살펴보기 21

1) GROUPING 함수 그루핑작업에사용유무를확인하는함수 이예제는부서별로급여합계를구하는쿼리입니다. 이쿼리에서 deptno 컬럼이그룹핑하는데사용되었는지살펴보기위해 grouping 함수를사용했는데가장마지막합계부분만 1 로사용되지않았고나머지는모두 0 으로사용되었음을확인할수있습니다. 22

이예는두개의컬럼을그룹핑하면서각컬럼의사용유무를확인했습니다. G_DEPTNO 컬럼은모두그룹핑하는데사용되었고 G_POSITION 컬럼은각부서별소계값을구할때는그룹핑에사용되지않았음을보여줍니다. 당연히부서별소계값을구하는것이니직급컬럼은사용되지않을것입니다. 23

2) GROUPING_ID 함수 GROUPING 컬럼 BIT GROUPING 결과 의 미 A, B 0 0 0 두컬럼다 GROUPING 에사용됨 A 0 1 1 A 컬럼만 GROUPING 에사용됨 B 1 0 2 B 컬럼만 GROUPING 에사용됨 - 1 1 3 두컬럼모두사용안됨 24

위화면을보면 GDP 부분에 0 으로되어있는건두컬럼모두그룹핑에사용되었다는뜻이고 1 인컬럼은 01 비트란의미이므로 deptno 는그룹핑에사용되었으나 position 은사용되지않았다라는의미입니다. 이렇게여러개의컬럼이있을경우 GROUPING_ID 를활용하여보다간편하게조회할수있습니다. 25

3) GROUPING SETS 26

4) LISTAGG 함수 (11g 에서추가됨 ) 27

28

5) PIVOT 함수 (11g 버전에서추가된함수 ) PIVOT 기능을사용하지않고출력 29

PIVOT 절에 MAX(num_day) 절은 DECODE 문장에서사용되는함수를적으면되고 FOR 절에는화면에집계될그룹핑할칼럼을적으면됩니다. 30

3 EMP 테이블에서부서별로각직급별인원이몇명인지계산해서출력하세요 - DECODE 함수를이용하는방법 31

3 EMP 테이블에서부서별로각직급별인원이몇명인지계산해서출력하세요 - PIVOT 함수를이용하는방법 32

- PIVOT 부분에조건을여러개사용하기 33

6) UNPIVOT 함수 PIVOT 테이블생성 34

35

6. 그룹함수연습문제 1) Professor 테이블을사용하여교수중에서급여 (Pay) 와보너스 (bonus) 를합친금액이가장많은경우와가장적은경우, 평균금액을구하세요. 단보너스가없을경우는보너스를 0 으로계산하고출력금액은모두소수점첫째자리까지만나오게하세요. 36

2) Professor 테이블을사용하여교수중에서급여 (Pay) 와보너스 (bonus) 를합친금액이가장많은경우와가장적은경우, 평균금액을구하세요. 단보너스가없을경우는급여를 0 으로계산하고출력금액은모두소수점첫째자리까지만나오게하세요. 37

3) Student 테이블의 birthday 칼럼을사용하여아래화면처럼월별로태어난인원수를출력하세요. 38

4) Student 테이블의 tel 칼럼을참고하여아래와같이지역별인원수를출력하세요. 단 02 서울, 031 경기, 051 부산, 052 울산, 053 대구, 055 경남으로출력하세요 39

5) Emp 테이블을사용하여아래의화면과같이부서별로직급별로급여합계결과를출력하세요. 먼저아래의두건의데이터를입력하신후작업하세요. SQL>insert into emp (empno, deptno, ename, sal) 2 values (1000,10,' 홍길동 ',3600) ; SQL> insert into emp (empno, deptno, ename, sal) 2 values (2000,30,' 일지매 ',3000); SQL> commit; 40

6) Professor 테이블의교수번호와이름을아래의예시화면형태로출력하세요. 41

7. 그외주요그룹함수 42

1) LAG 함수 : 이전행값을가져올때사용하는함수입니다. 문법 : LAG( 출력할컬럼명, OFFSET, 기본출력값 ) OVER (Query_partition 구문, ORDER BY 정렬할컬럼 ) 43

2) LEAD 함수 LEAD 함수는 LAG 함수와반대로이후의값을가져오는함수입니다. 44

3) RANK 함수 순위출력함수 RANK( 조건값 ) WITHIN GROUP (ORDER BY 조건값컬럼명 [ASC DESC] ) - 사용예 : 이름이 송도권 인교수의순위를조회하세요. 45

3) RANK 함수 집계용 RANK ( ) (ORDER BY 조건컬럼명 [ASC DESC] ) 1 교수테이블 ( professor ) 테이블에서교수들의교수번호와이름, 급여, 급여순위를출력하세요. 46

2 Emp 테이블에서 10 번부서에속한직원들의사번과이름, 급여, 해당부서내 의급여순위를출력하세요. 47

3 emp 테이블을사용하여사번, 이름, 급여, 부서번호, 부서별급여순위를출력하세요. 48

4 emp 테이블을사용하여사번, 이름, 급여, 부서번호, 부서내 job 별로급여순위 를출력하세요 49

4) 누적합계구하기 1 panmae 테이블을사용하여 1000 번대리점의판매내역을출력하되판매일자, 제품코드, 판매량, 누적판매금액을아래와같이출력하세요. 50

2 panmae 테이블을사용하여 1000 번대리점의판매내역을판매일자별로분류 하고같은일자일경우제품코드별로한번더분류한후판매일자, 제품코드, 판매 량, 판매금액, 누적판매금액을아래와같이출력하세요. 51