그룹의 누적 합계는 분석함수 또는 집합의 복제를 통해서 쉽게 구현할 수 있습니다.반면에 그룹의 누적 곱셈은 조금 까다로운데요. 로그값의 합은 로그 지수의 값의 곱이라는 원리를 사용하면 구현할 수 있습니다.log2 + log3 = log6 사용되는 함수LN(n) : LN함수는 주어진 값의 자연로그 값을 반환합니다. SUM(n) : 그룹의 누적 합계 반환EXP(n) : EXP함수는 주어진 값의 e의 승수를 나타냅니다. ex) 분석함수를 이용해서 예제를 만들어 보았습니다. SELECT no ,EXP( SUM(LN(no)) over (ORDER BY no ) ) mutiply FROM( SELECT LEVEL no FROM dual CONNECT BY LEVEL 결과NOMUTIPLY1122364245120
REPLACE() 함수와 translate() 함수 모두 문자열에서 특정 부분을 바꾸는 함수 입니다. SELECT REPLACE('a1234','a',' ')FROM dual;==> 1234 SELECT translate('ba1234','ab',' ')FROM dual;==> 1234 replace()함수는 특정문자난 단위, 절이 일치하는 것을 바꾸는 반면에 translate()각각 문자 단위로 변경이 이루어 집니다.때에 따라서는 translate()함수가 더 좋을때가 많이 있습니다.
오라클에 listagg() 함수가 있습니다.여러행에 걸친 컬럼 값을 하나의 컬럼 값으로 만들어 주는 함수입니다.백문이 불여 일견... SELECT listagg(book_name, ''',''') within GROUP(ORDER BY book_name) FROM( SELECT DISTINCT book_name FROM t_books); ==>결과이순신전집,흥부전 . . . 책이름이 ',' 로 구분되어 하나의 컬럼 값으로 모여지고, 책이름 오름 차순으로 결합이 됩니다.역순으로 하실려면 within GROUP(ORDER BY book_name desc) 하시면 되겠죠 ^^
그간 생각만 했던 알티베이스를 PC에 설치해 보았습니다. [설치순서]1. 웹사이트에서 다운로드 (http://atc.altibase.com/download/package_download.jsp)2. 설치3. 라이센스 받기 (http://atc.altibase.com에서 라이센스 신청) : 라이센스 파일 수신 후 복사4. 알티베이스 기동 (server start)5. 알티베이스 접속 : isqlc -u sys -p manager -sysdba 문법이 오라클과 상당히 비슷합니다. select * from dual; 도 되더군요.
spool 파일명 // ex) /user/test/a.txt -- spool 관련 명령어 . . .ex) set echo off; ....명령 구문..... // 쿼리 또는 @쿼리파일명 ex) /user/test/a.sql spool off spool은 명령들을 일괄로 처리해 주는 명령어 이다. spool 명령에 파일명을 파라미터로 지정하면 spool에서 실행된 모든 명령 들이 파일로 저장된다. ---------------------------------- spool 관련 명령어 ---------------------------------- set heading off : 헤더가 표시되지 않고 데이터만 표시한다. set pagesize 0 : 기본값은 14이며 공백을 없애기 위해 0으로 세팅, pages..
아래 SQL에는 NO_MERGE, PUSH_PRED 힌트가 사용되었습니다.먼저 PUSH_PRED 는 조인 조건 컬럼을 뷰안으로 병합하라고 조언해 주는 힌트입니다.즉 인라인 뷰 v 의 조건절로 100 = v.manager_id(+) 조건이 들어가도록 변경한 다음에실행계획을 수립하는 것입니다.NO_MERGE는 메인쿼리와 인라인뷰가 합쳐지는 것 즉 병합을 하지말고 인라인 뷰 먼저 실행 하라는 것입니다. SELECT /*+ NO_MERGE(v) PUSH_PRED(v) */ *FROM employees e,(SELECT manager_idFROM employees) vWHERE e.manager_id = v.manager_id(+)AND e.employee_id = 100; NO_MERGE는 아래와 같이 인라인 ..
통계작업을 위해 데이터를 샘플링하는 경우가 있습니다.이때 Sybase IQ에서는 RAND() 함수를 사용하면 쉽게 샘플링 데이터를 얻을 수 있습니다.ex) 2012년 1월 거래 데이터에서 5% 데이터를 샘플링하기SELECT *FROM 거래WHERE 년월 = '201201' AND RAND(ROWID(거래)) < .05;정해진 건수 예를 들어 10만건 이렇게 구해야 한다면 먼저 적당한 %를 구한 다음에 TOP으로 가져오면 되겠죠. PS) 오라클을 사용한다면 아래와 같이 하면 됩니다.SELECT *FROM 거래 SAMPLE(5)WHERE 년월 = '201201' ;또 다른 방법SELECT *FROM (SELECT * FROM 거래 WHERE 년월 = '201201' ORDER BY DBMS_RANDOM.VA..
- Total
- Today
- Yesterday
- JMW 헤어드라이기기
- 로니카 BCS
- 별잉 빛나는 밤
- Sybase IQ
- 고체 향수
- 유가바이트디비
- 매직 트랙패드2
- node.js
- 남설 팔찌
- yugabyteDB
- 빈센트 반 고흐
- GKRS
- 코라나 19
- 홈 오피스
- 오미크론
- 톡토기
- VARIDESK
- weka
- 브리다 정수기
- Pixel Pals
- 루미큐브 종류
- 카카오 에드
- 화분벌레
- Life Chair
- 별이 빚나는 밤
- 증권정보포털
- 솔리드 쿨론
- 르세라핌
- 파나소닉 비데 DL-EH10KWS
- 배당급
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |