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

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

歯sql_tuning2

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

ePapyrus PDF Document

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

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

ORACLE-SQL

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

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

Microsoft PowerPoint - Oracle Data Access Pattern.ppt

객관식 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;

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

13주-14주proc.PDF

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


Jerry Held

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

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

No

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

Microsoft PowerPoint - Oracle Data Join Method.pptx [읽기 전용]

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

RDB개요.ppt

ALTIBASE HDB Patch Notes

ESQL/C


*금안 도비라및목차1~9

歯박지원-구운몽.PDF

*금안14(10)01-도비라및목차1~12

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

SQL초보에서Schema Object까지

강의 개요

Slide 1

PowerPoint 프레젠테이션

Microsoft Word - 기술노트[19회] Flashback.doc

Microsoft Word - 04_EXCEPTION.doc

MS-SQL SERVER 대비 기능

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

3 S Q L A n t i p a t t e r n s Trees/intro/parent.sql CREATE TABLE Comments ( comment_id SERIAL PRIMARY KEY, parent_id BIGINT UNSIGNED, comment TEXT

Microsoft Word - 05_SUBPROGRAM.doc

*금안 도비라및목차1~17

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

문서 템플릿

Intra_DW_Ch4.PDF

Spring Boot/JDBC JdbcTemplate/CRUD 예제

FlashBackt.ppt

PowerPoint 프레젠테이션

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

歯얻는다.PDF

제목을 입력하세요.

Orcad Capture 9.x

토익S-채용사례리플렛0404

Result Cache 동작원리및활용방안 엑셈컨설팅본부 /DB 컨설팅팀김철환 개요 ORACLE DBMS 를사용하는시스템에서 QUERY 성능은무엇보다중요한요소중하나이며그 성능과직접적인관련이있는것이 I/O 이다. 많은건수를 ACCESS 해야만원하는결과값을얻을수있는 QUER

Microsoft Word - Goodus_기술노트[19회]_Flashback

소만사 소개

SQL Tuning Business Development DB

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

untitled

最即時的Sybase ASE Server資料庫診斷工具

개발문서 Oracle - Clob

인권1~2부73p

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

*금안 도비라및목차1~15

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

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

60

오라클 데이터베이스 10g 핵심 요약 노트

Microsoft Word - PLSQL.doc

PowerPoint 프레젠테이션

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

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx


슬라이드 1

DB 성능고도화핵심원리 비투엔컨설팅 수석컨설턴트 조시형

Microsoft Word - Blind Sql Injection.doc

C++ Programming

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

pdf


³»Áö_1È£_0107L

PowerPoint Presentation

歯PLSQL10.PDF

내지무인화_

Microsoft PowerPoint - 10Àå.ppt

121220_워키디_상세설명서.indd

PowerChute Personal Edition v3.1.0 에이전트 사용 설명서

DBMS & SQL Server Installation Database Laboratory

# E-....b61.)

THE JOURNAL OF KOREAN INSTITUTE OF ELECTROMAGNETIC ENGINEERING AND SCIENCE Dec.; 27(12),

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

<4D F736F F D20BFC0B6F3C5AC20C8A3C8AFBCBA20B0B3B9DFC0DA20B0A1C0CCB5E539372E646F63>

SQL Tuning Business Development DB SQL - -SQL -SQL

GROUPING SETS 등의새로운리포팅기능 - WINDOW FUNCTION 같은새로운개념의분석기능들 가. 일반집합연산자 현재사용하는 SQL 의많은기능이관계형데이터베이스의이론을수립한 E.F.Codd 박사의논문에언급이되어있다. 논문에언급된 8 가지관계형대수는다시각각 4


Microsoft PowerPoint - DB2 Migration절차, 방법 및 MTK소개.ppt

6장. SQL

그리고.. 엑셀에하나둘완료된쿼리가늘어날때마다... 희열을느낀다... 이글을보는당신은어떻게할것인가? A 군의판단이잘못된것인가? 잘못된판단이아니다최선의판단이다... 11g 전까지는... 11g New Feature 인 Pending Statistics 를 SPA 와함께사용

Microsoft PowerPoint 유용한 PHP 함수들.ppt

Interstage5 SOAP서비스 설정 가이드

초보자를 위한 분산 캐시 활용 전략

Transcription:

5 중 1 2007-06-12 오후 5:52 Home Login Register SQL Query SQL Tuning Oracle Administration Tools References Boards SoQooL? 쏘쿨 SoQooL) 이란? Q&A Tips Lectures Function Lectures Oracle Spatial Tips Scripts SQL Design Patterns Main Links: 사는얘기 SQL 쿼리팁 SQL 쿼리질문과답변 Toad 팁 Toad 강좌 오라클함수강좌 Execution Plan 정리 스크립트모음 Search This Category: Go 목록으로 Back to Thread 답글쓰기 Replay to this Thre Replies: 3 - Last Post: 2007-03-25 01:43:19 by 김홍선 ) - [ Previous Next ] 다중 Row 결과를단일행으로컴마로분리해출력하는방법 2) Posted: 2006-05-15 11:47:19) 글쓴이 : 김홍선 * SYS_CONNECT_BY_PATH 함수는연결하려는문자열의수가많아질경우, 해당쿼리의 performance 에문제가생길수있습니다. 충분히테스트하고적용하시기바랍니다. SYS_CONNECT_BY_PATH 함수사용으로 performance 에문제가생길경우, plsql 로해결하시면되겠습니다. 예제 1) 다중 Row 결과를단일행으로컴마로분리해출력하는방법 1) 에서, 만약행들이그룹번호에따라그룹으로나뉘어져있고, 각그룹별로하나의행으로컴마로분리해출력하려고하면어떻게해야할것인가? 이름그룹 ========== 홍길동 1 김길동 1 이길동 1 홍순신 2 김순신 2 이순신 2 ========== --> 그룹이름 ====================== 1 홍길동, 김길동, 이길동 2 홍순신, 김순신, 이순신 ====================== emp.ename 컬럼, 그리고그룹번호로 emp.deptno 컬럼을예로들어쿼리를구성해보자. emp 테이블의 deptno, ename 컬럼은아래와같다. 10 CLARK 10 KING 10 MILLER 20 ADAMS 20 FORD 20 JONES 20 SCOTT 20 SMITH 30 ALLEN 30 BLAKE 30 JAMES 30 MARTIN

5 중 2 2007-06-12 오후 5:52 30 TURNER 30 WARD 쿼리와쿼리결과는아래와같다. 쿼리에서정확히어떤컬럼들이어떤역할을하는지이번에도숙지하도록하자. SELECT deptno, SUBSTR MAX SYS_CONNECT_BY_PATH ename, ',')), 2) path# FROM SELECT ename, deptno, ROW_NUMBER ) OVER PARTITION BY deptno ORDER BY ename) rnum FROM emp) START WITH rnum = 1 CONNECT BY PRIOR rnum = rnum - 1 AND PRIOR deptno = deptno GROUP BY deptno 10 CLARK,KING,MILLER 20 ADAMS,FORD,JONES,SCOTT,SMITH 30 ALLEN,BLAKE,JAMES,MARTIN,TURNER,WARD 예제 2) 이번에는 deptno 와같이그룹으로나뉘는컬럼이 2 개 deptno,job) 일때를고려해보자. group by deptno, job) 3 개이상도비슷한방법으로해결한다. 즉아래의테이블을, 10 CLERK MILLER 10 MANAGER CLARK 10 PRESIDENT KING --------------------------- 20 ANALYST FORD 20 ANALYST SCOTT 20 CLERK ADAMS 20 CLERK SMITH 20 MANAGER JONES --------------------------- 30 CLERK JAMES 30 MANAGER BLAKE 30 SALESMAN ALLEN 30 SALESMAN MARTIN 30 SALESMAN TURNER 30 SALESMAN WARD 아래와같이출력이되도록쿼리를만들어보자. 10 CLERK MILLER 10 MANAGER CLARK 10 PRESIDENT KING 20 CLERK ADAMS,SMITH 20 ANALYST FORD,SCOTT 20 MANAGER JONES 30 CLERK JAMES 30 MANAGER BLAKE 30 SALESMAN ALLEN,MARTIN,TURNER,WARD 쿼리는아래와같다. 1 번예제의쿼리에서추가된부분을눈여겨보자.

5 중 3 2007-06-12 오후 5:52 SELECT deptno, job, SUBSTR MAX SYS_CONNECT_BY_PATH ename, ',')), 2) path# FROM SELECT deptno, job, ename, ROW_NUMBER ) OVER PARTITION BY deptno, job ORDER BY ename) rnum FROM emp) START WITH rnum = 1 CONNECT BY PRIOR rnum = rnum - 1 AND PRIOR deptno = deptno AND PRIOR job = job GROUP BY deptno, job * 글쓴이 : 김홍선 * 위내용을이곳에서처음보신분은다른곳에게재하실때반드시출처를밝혀주시기바랍니다. * 위내용에관해서잘못된부분이있거나질문이있으신분은답글로알려주시기바랍니다. RE: 다중 Row 결과를단일행으로컴마로분리해출력하는방법 2) Posted: 2006-08-09 16:43:25) 새창으로 문제 ) 특정기간안에있는모든요일을한방쿼리로구할수가있나요? 즉 2006.08.01 ~ 2005.08.03 기간의요일은 ' 화, 수, 목 ' 이쟎아요 이걸 ' 화, 수, 목 ' 이렇게리턴하게쿼리로구할수가있는건지궁금합니다. 시작일부터종료일까지모든요일이시작일을기준으로보여주면되구요, 구분은콤마,) 로나오게하려구요. 중복은제거하지않아도돼구요.. 답변 ) 언뜻보기에 connect by prior 절이들어가는 hierarchical query 로쉽게풀릴거라는생각이든다. 하지만, connect by level 구문만을써서색다르게결과를만드는쿼리를아래와같이시도해보자. SELECT SUBSTR MAX SYS_CONNECT_BY_PATH TO_CHAR start_dt + LEVEL - 1, 'dy'), ',' ) ), 2 ) dt FROM SELECT TO_DATE '2006.08.01', 'yyyy.mm.dd') start_dt, TO_DATE '2006.08.03', 'yyyy.mm.dd') end_dt FROM DUAL) CONNECT BY start_dt + LEVEL - 1 <= end_dt

5 중 4 2007-06-12 오후 5:52 DT ------- 화, 수, 목 RE: 다중 Row 결과를단일행으로컴마로분리해출력하는방법 2) Posted: 2006-08-11 21:19:29) 새창으로 주제와는관련이없지만, 바로위의문제를다른분의아이디어를빌려좀더간단히만들어봤습니다. SELECT SUBSTR LPAD str, NEXT_DAY e_dt, 1) - TRUNC s_dt, 'd')) * 3, str), TO_CHAR s_dt, 'd') * 2-1, e_dt - s_dt) * 2 + 1 ) RESULT FROM SELECT TO_DATE :s_dt, 'yyyymmdd') s_dt, TO_DATE :e_dt, 'yyyymmdd') e_dt, ' 일, 월, 화, 수, 목, 금, 토,' str FROM DUAL) Tom Kyte의쿼리 Posted: 2007-03-25 01:43:19) 새창으로 최초에제시한두개의쿼리들에대해서, 오라클개발자인 Tom Kyte 가제시한쿼리들을참고용으로남기도록하겠습니다. SELECT DEPTNO, LTRIM SYS_CONNECT_BY_PATH ENAME, ','), ',') PATH# FROM SELECT ENAME, DEPTNO, ROW_NUMBER ) OVER PARTITION BY DEPTNO ORDER BY ENAME) RN, COUNT *) OVER PARTITION BY DEPTNO) CNT FROM EMP) WHERE RN = CNT START WITH RN = 1 CONNECT BY PRIOR RN = RN - 1 AND PRIOR DEPTNO = DEPTNO SELECT DEPTNO, JOB, LTRIM SYS_CONNECT_BY_PATH ENAME, ','), ',') PATH# FROM SELECT DEPTNO, JOB, ENAME, ROW_NUMBER ) OVER PARTITION BY DEPTNO, JOB ORDER BY ENAME) RN, COUNT *) OVER PARTITION BY DEPTNO, JOB) CNT FROM EMP)

5 중 5 2007-06-12 오후 5:52 WHERE RN = CNT START WITH RN = 1 CONNECT BY PRIOR RN = RN - 1 AND PRIOR DEPTNO = DEPTNO AND PRIOR JOB = JOB 아래는위방법을제시한 Tom Kyte 의블로그페이지입니다. http://tkyte.blogspot.com/2006/08/evolution.html Replies: 3 - Last Post: 2007-03-25 01:43:19.0 by 김홍선 ) - [ Previous Next ] 목록으로 Back to Thread 답글쓰기 Replay to this Thre Copyright c 2006.03 SoQooL. All rights reserved. This site is running Oracle 9.2.0.4.