오라클 분석함수 중 ratio_to_report가 있습니다. 사이베이스에서는 아직 지원하고 있지 않은 듯(?) 합니다. 모집합을 한번만 읽고 처리하는 방법입니다. 아이디별 사용횟수와 그 구성비율을 구하는 예제 입니다. select id , count(*) , round( convert(float, count(*)) / sum(count(*)) over () , 2) pt from 접속 where reg_dt like '201001%' group by id; ==> sum(count(*)) over () 를 통해 부분 count(*)의 전체 카운트를 구할 수 있습니다.
테이블 설계시 PK값이 너무 많아 alise로 pk를 잡으려고 시퀀스형 컬럼을 추가 했습니다. 오라클에서는 rownum를 사용하면 되는데 Sybase IQ에서는 number(*) 함수를 사용하면 되더군요. 1. [오라클] select rownum, a.* from tmp; 2. [Sybase IQ] select number(*), a.* from tmp; * 분석 함수를 이용해서도 rownum를 구현할 수 있습니다.
오라클 group by절에 사용되는 rollup과 cube는 편리한 함수입니다. 이 함수들이 없다면 데이터 복제를 통해 group by된 값의 sum(총계)등을 통해 구현해야 합니다. 그러지 않으면 어플리케이션에서 해야 겠죠. 편리함에도 불구하고 rollup과 cube가 자꾸 햇갈립니다. 아래 공식으로 한방에 이해해 보죠. 1. rollup ( group by절 오른쪽 컬럼부터 삭제하며 그룹을 생성하라) ex) select a, b, count(*) from tmp group by rollup(a,b) -- 나올수 있는 집합 a, b, count(*) union all a, null, count(*) union all null, null, count(*) ==> 오른쪽 컬럼인 b부터 null로 대체 되면..
참고 URL = http://scidb.tistory.com/69 아래 순서대로 하면 됩니다. 1. 스칼라서브쿼리가 리턴할 자료형 생성 (C의 구조체 같은 느낌..) create or replace type dept_type as object ( dept_cd char(10), dept_nm name varchar2(50) ); 2. 스칼라서브쿼리에서 리턴받을때 Arrary로 받기때문에 Array Object 생성 create or replace type array_dept as varray(1) of dept_type ;
URL = http://scidb.tistory.com/ 4월에 출간된 "The logical optimizer"의 저자의 블러그입니다. 블러그에 올라와 있는 글을 보고 책을 바로 구매했죠. ^^ 주옥같은 글들이 많더군요. DBMS에 관심이 많은 개발자나 학생분들도 가끔씩 들여다 보면 좋을 듯합니다. 생각의 파이를 넓혀 주네요. 그리고 저자가 추천한 책중에서 "Relational Database Index Design and The Optimizers" 란 책이 있습니다. 구해서 보고 있느데 내용은 좋은데 원서라 속도가 나질 않네요. 빨리 번역서가 나왔으면 좋겠습니다. 번역서가 나오면 개발자나 DBA 모두에게 정말 유용한 바이블이 되지 않을까 생각이 들더군요. ^^
오라클를 주로 사용하다 보니 사이베이스IQ에서 SQL작성시 대체 기능이 많이 있어 몇개 적어 보았습니다. 1. NVL -> COALESCE 2. TO_DATE -> CONVERT(DATETIME,'20100104') 3. ADD_MONTHS -> MONTHS(데이트형, 개월차수) 4. TO_CHAR -> DATEFORMAT(데이트형, 'YYYYMMDD') 5. DUAL -> SYS.DUMMY ex) select 1 from sys.dummy 6. SYSDATE -> TODAY() OR NOW() 7. LAST_DAY -> DAYS(DATE(CASE(DATAFORMAT(MONTHS(TODAY (),1),'YYYYMMDD') AS CHAR(6)) || '01'),-1) 8. TO_CHAR(SYSDATE,'D..
DETERMINISTIC 함수란 함수구문 리턴절에 DETERMINISTIC 키워드가 들어간 것이다. 그러면 DETERMINISTIC 함수는 무슨 역할을 하나? 바로 이런 함수의 형태에서 사용할 수가 있는데 바로 입력값이 동일하면 리턴값도 받드시 동일한 함수에서 사용할 수 있는데 이점을 이용해서 함수가 반복 호출될때 이전에 호출한 값이 호출되면 함수가 호출되지 않고 바로 값을 되돌려 줘서 함수호출 부하를 줄이는 것이다. 참고 URL = http://adap.tistory.com/entry/Deterministic-의-진실Multi-buffer URL = http://scidb.tistory.com/category/Oracle/PL/SQL%20Pattern
- Total
- Today
- Yesterday
- JMW 헤어드라이기기
- 유가바이트디비
- GKRS
- Sybase IQ
- 파나소닉 비데 DL-EH10KWS
- 로니카 BCS
- 남설 팔찌
- Life Chair
- 증권정보포털
- node.js
- 홈 오피스
- 화분벌레
- 르세라핌
- weka
- yugabyteDB
- 솔리드 쿨론
- VARIDESK
- 코라나 19
- 브리다 정수기
- 톡토기
- 루미큐브 종류
- 오미크론
- 별잉 빛나는 밤
- 카카오 에드
- 배당급
- Pixel Pals
- 매직 트랙패드2
- 빈센트 반 고흐
- 별이 빚나는 밤
- 고체 향수
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |