작성일자 : 2023-11-11 Ver 0.1.1 1. Intro Oracle에서 쿼리를 작성할 때, 전체 합계 대비 비율 또는 백분율을 구하고 싶은 경우가 있을 수 있다. 이를 위해서 분모의 합을 확인 후에 컬럼에서 나눠 주면서 비율을 구할 수도 있겠지만, RATIO_TO_REPORT() OVER() 함수를 이용하면 그럴 필요 없이 바로 비율이 반환된다. 그 결과에 100을 곱하면 백분율(%)로 사용할 수도 있다. SQL Language Reference docs.oracle.com 2. How to 2-1) 기본 사용법 Syntax에 맞게 EMP 테이블에 적용해보았을 때, 결과는 아래와 같다. 아래 쿼리는 개벼행에 대한 비율로 expr 자리에 컬럼 값 그대로 SAL이 들어간다. 소수점에 대한 지정이 ..
작성일자 : 2023-11-11 Ver 0.1.1 1. Intro Oracle에서 쿼리를 작성할 때, Tableau에서 계산식을 작성할때 잘 작성한 쿼리와 식은 식을 간단하게 작성했을 때이다. 2줄로 작성하던 식을 함수를 이용해 1줄로 줄일 수 있다면, 함수에 대한 이해가 있다는 전제가 필요하지만 식이 더 간단해질 수 있다. Oracle에서 이렇게 간단하게 쿼리를 작성할 수 있게 도와주는 함수 중 하나는 바로 LNNVL이다. LNNVL 함수는 1) 해당 컬럼에 NULL이 존재할 경우 NULL 처리와 2) 조건문을 한 번에 처리하고자 할때 사용한다. 컬럼이 NULL인 경우 OR 함수 내부 조건이 FALSE인 경우 SQL Language Reference docs.oracle.com 2. How to Int..
작성일자 : 2023-11-10 Ver 0.1.1 1. Intro 쿼리를 작성하다 보면 자주는 아니지만, 때때로 Table 구조에 대한 확인이 필요한 경우가 있다. 어떤 컬럼들이 있는지, 컬럼들이 어떤 형식을 가지고 있는지, NULL 여부 등과 같은 정보들은 꽤 자주 확인해야할 정보들이다. Tableau에서는 데이터들의 데이터라는 성격으로 Meta Data 라고 불리는데, Oracle에서 테이블의 컬럼이 많고, 정확히 컬럼명이 기억나지 않을 때, 그럴 때마다 SELECT * FROM Table을 하기에는 불편하고 번거롭다. 이런 경우를 위해 Meta Data를 조회할 수 있는 쿼리문을 통해 원하는 정보를 확인할 수 있다. 이번 포스팅에서는 Table 구조 및 정보에 대한 조회 쿼리를 포함하여 다른 정보들..
작성일자 : 2023-11-08 Ver 0.1.1 1. Intro ORACLE에서 집계함수와 GROUP BY를 통해서 그룹 내에서 집계를 할 수 있다. 예를 들면 그룹별로 MAX 또는 MIN 함수를 통해 최소, 최대 값을 쉽게 구할 수 있다. 그렇지만, MIN / MAX에 해당하는 행의 값 중에서 특정 컬럼의 값을 같이 표시하기 위해서는 어떻게 해야할까? 이런 경우 서브 쿼리를 사용하는 방법이 많이 사용되지만, KEEP 키워드를 사용하면 한 번의 쿼리문으로 MIN / MAX에 해당하는 행의 값들을 쉽게 가져올 수 있다. 2. 사용법 집계함수(집계 컬럼) KEEP (DENSE_RANK LAST / FIRST ORDER BY 정렬 컬럼1, 정렬 컬럼2 ,... ) - 마지막 / 첫번째 순위 값 KEEP 키워..