본문 바로가기
반응형

프로그래밍/SQL19

Oracle dense_rank 함수 활용 1. 컬럼2로 GROUP BY 한 조건의 컬럼1로 정렬한 데이터 중 마지막 컬럼의 ROWID을 가져온다. (ROWID 대신 컬럼 사용 가능) SELECT MAX(ROWID) KEEP (DENSE_RANK LAST ORDER BY 컬럼1) FROM 테이블 GROUP BY 컬럼2 2. 컬럼1 조건으로 컬럼2를 정렬한 데이터의 순번을 매긴다. SELECT ROW_NUMBER() OVER (PARTITION BY 컬럼1 ORDER BY 컬럼2) FROM 테이블 2018. 11. 26.
오라클 COUNT(), SUM()의 이해 신입들을 보면 COUNT()와 SUM()을 이해하고 있는 친구들이 많지 않다. COUNT()는 갯수를 세는 함수이고 SUM()은 합을 구하는 함수라는건 누구든 안다. 하지만 아래와 같은 질문을 하면 틀리는 경우가 많다. ​Q. TB_USER라는 테이블에 5개의 데이터가 있다. 1. SELECT COUNT(1) FROM TB_USER; => 5 2. SELECT COUNT(5) FROM TB_USER; => 5 3. SELECT SUM(1) FROM TB_USER; => 5 4. SELECT SUM(5) FROM TB_USER; => 25 대부분 1번과 2번의 값은 다르다고 생각한다. 1이던 5이던 10이던 100이던 값은 그에대한 카운트이다. 또한 3번은 이해하면서 4번은 왜 25가 나오는지 모르는경우도.. 2017. 7. 24.
오라클 날짜함수 사용과 날짜 계산 방법 1. 현재날짜 ​SELECT SYSDATE FROM DUAL => 2017-07-20 오후 3:02:24 2. 현재날짜 + 1일 ​SELECT SYSDATE +1 FROM DUAL => 2017-07-21 오후 3:03:04 3. 현재날짜 – 1일 ​SELECT SYSDATE -1 FROM DUAL => 2017-07-19 오후 3:03:36 4. 현재날짜 + 00시00분00초 ​SELECT TO_CHAR(TO_DATE('20170720'),'YYYYMMDDHH24MISS') FROM DUAL => 20170720000000 5. 현재날짜 + 23시59분59초 ​SELECT TO_DATE('20170720') + 0.99999 FROM DUAL => 2017-07-20 오후 11:59:59 6. 현재날짜.. 2017. 7. 20.
오라클 랜덤숫자, 랜덤문자 생성 DBMS_RANDOM 오라클 랜덤함수 DBMS_RANDOM으로 아래와 같이 랜덤으로 숫자를 생성할 수 있다. 1. 랜덤 숫자 생성 SELECT DBMS_RANDOM.VALUE(10,125) AS RANDOM_NUM FROM DUAL 2. 랜덤 숫자 생성(정수) SELECT TRUNC(DBMS_RANDOM.VALUE(10,125)) AS RANDOM_NUM FROM DUAL SELECT TRUNC(DBMS_RANDOM.VALUE(10000,99999)) AS RANDOM_NUM FROM DUAL 3. 랜덤 문자 생성 SELECT DBMS_RANDOM.STRING('A',5) AS RANDOM_STR FROM DUAL 2017/07/16 - [프로그래밍/기타] - 엑셀을 활용한 INSERT문 자동 생성 2017. 7. 18.
반응형