[함수] 1 일 1 함수 : ROLLUP의 쓰임
·
데이터베이스/oracle
ROLLUP 함수는 GROUP BY 절에서 사용하는 함수로, ROLLUP 함수의 인자로 쓰인 컬럼들의 소계, 총계를 구할 수 있다.ROLLUP함수를 쓰면첫번째 인자(상품 ID)별 두번째 인자(월) + 첫번째 인자(상품 ID)별 두번째 인자(월)의 소계(SUBTOTAL) + 총계(GRAND TOTAL)의 결과가 나온다.ROLLUP 함수는 인자의 순서에도 영향을 받기 때문에, 순서가 바뀐다면 결과도 바뀌게 된다.아까와는 반대로첫번째 인자(월)별 두번째 인자(상품 ID) + 첫번째 인자(월)별 두번째 인자(상품ID)의 소계(SUBTOTAL) + 총계(GRAND TOTAL)의 결과가 나온다. 이렇듯 ROLLUP 함수는 인자별 소계, 총계를 내기 때문에 아래의 쿼리에서는 전혀 다른 결과가 나오게 된다.  SELE..
[함수] 1 일 1 함수 : 그룹 내 순위를 매기는 함수(RANK, DENSE_RANK, ROW_NUMBER)
·
데이터베이스/oracle
그룹 내 순위를 매기는 함수에는 RANK, DENSE_RANK, ROW_NUMBER가 있다. 각각 특징을 비교하여 어떤 경우에 쓰이는 지 알아보았다. ROW_NUMBER()SELECT     employee_id,     salary,     ROW_NUMBER() OVER (PARTITION BY department_id ORDER BY salary DESC) AS row_numFROM     employees; 이 예시에서는 각 부서별로 사원을 연봉에 따라 순위를 매기는 경우이다. employees 테이블에서 각 사원의 연봉을 내림차순으로 순위를 매긴다. PARTITION BY 절은 부서별로 분할하여 순위를 매기고, ORDER BY 절은 연봉을 기준으로 순위를 부여한다. RANK()SELECT    ..
[프로그래머스][SQL][ORACLE] lv 3 카테고리 별 도서 판매량
·
코테/sql
SELECT B.CATEGORY, SUM(S.SALES) AS TOTAL_SALESFROM BOOK BINNER JOIN BOOK_SALES SON B.BOOK_ID = S.BOOK_IDWHERE TO_CHAR(S.SALES_DATE, 'YYYY-MM' ) LIKE '2022-01'GROUP BY B.CATEGORYORDER BY CATEGORY ASC누워서 쓰니까 너무 힘들다
토드(Toad)에서 다른 스키마의 테이블로 데이터 복사하기
·
데이터베이스/oracle
https://deersoul6662.tistory.com/119 Toad 다른 DB로 데이터 복사하기 Toad for Oracle을 이용하여 다른 DB에서 다른 DB로 데이터를 복사할 수 있다. 스키마가 동일한경우(예 : 실제 DB -> 개발 DB로 이관) 데이터만 넣을수도 있고, 테이블 스키마를 생성하면서 넣을수도 있 deersoul6662.tistory.com => 이 글을 참고하여 진행함 1. 스키마 브라우저로 복사를 원하는 스키마의 테이블을 우클릭, 사진의 경로대로 선택한다 2. 카피 옵션을 선택하여 복사한다. 이미 데이터가 있는 테이블이라면 데이터 복사 시 무결성 제약조건에 위배될 가능성이 높으므로 before copy 옵션의 truncate destination tables를 체크하면 됨 복..
TRANSLATE 함수로 정규식같은 효과 내기
·
데이터베이스/oracle
0!1DDDFSDDFSD02@-9874-5612AWE!@ 라는 문자열에서 숫자만 추출하고 싶다면, 정규식을 사용하는 것이 가장 편하고, 빨리 생각나는 방법이다. 하지만 낮은 오라클 버전에선 정규식을 사용할 수 없다. 그 때 사용할 수 있는 것이 바로 TRANSLATE함수다. 숫자만 추출할 때 SELECT TRANSLATE('0!1DDDFSDDFSD02@-9874-5612AWE!@','0123456789'||'0!1DDDFSDDFSD02@-9874-5612AWE!@' ,'0123456789') AS TRANSLATE FROM DUAL; TRANSLATE(인자1, 인자2, 인자3) 이라고 할 때, 인자 1에 있는 숫자만 남기기 => 숫자는 0~9까지 인자 2 인 치환대상에 0123456789+ 인자 1(적용..