오라클 컬럼 숫자 세는 쿼리문
오라클 컬럼 조건에 따라서 숫자 세는 쿼리문 방법은 크게 DECODE, CASE WHEN 절 을 사용할 수 있는데요. 조건이 간단하면 DECODE 조건이 복잡하면 CASE WHEN 절을 사용하시면 됩니다. 1. DECODE 사용법 흔히아는 DECODE 문법에 SUM, COUNT 을 해주면 됨 SELECT SUM(DECODE(컬럼명, 조건, 1, 0) AS COL1 FROM 테이블명 ; SELECT COUNT(DECODE(컬럼명, 조건, 1, 0)) AS COL1 , SUM(DECODE(컬럼명, 조건, 1, 0)) AS COL2 FROM 테이블명 ; --> 다른 컬럼을 추가로 조회하려면 SUM, COUNT 함수를 사용 중이여서 group by 를 사용해야 됩니다. 아니면 상황에 맞게 ..
데이터를 비율 컬럼의 합계를 1로 업데이트하는 쿼리
** 데이터를 비율 컬럼의 합계를 1로 업데이트를 하는 걸 만들고 있습니다. 테이블 명은 Test , 컬럼 a,b,c,d ,날짜, 키값, 비율 , 등록일, 수정일 , 등록자, 수정자 로 구성되어 있습니다. 날짜와 키값을 기준으로 ab,c,d 컬럼의 order by 순서 대로 프로시져로 비율의 값을 0.0001 이나 0.0001 로 빼줘서 비율의 합이 1이 되도록 하려고 합니다. -- 대상이 되는 키값, 현재까지 비율의 합 , 처리해야할 갯수를 조회하고 , +인지 - 인지 확인 하고 loop 실행 FOR c0 IN ( SELECT 키값 , SUM(비율) SUM_PRC_RATIO /* 비율의 합 */ , ABS((1.0 - SUM(비율)) / 0.0001) AS GAP_LIMIT /* 처리해야할 갯수 */ ..
오라클 월별 주차 쿼리
인터넷에서 원래 있던 주차 쿼리를 제가 필요한 방식으로 수정한 쿼리입니다. 기본적으로 with 절을 써서 쿼리를 만들었습니다. with TEST as ( select week.* from( select to_char(WEEK_START, 'YYYY-MM-DD') WEEK_START ,to_char(WEEK_END, 'YYYY-MM-DD') WEEK_END ,to_char(WEEK_START, 'WW') WEEK_OF_YEAR_ISO ,to_char(WEEK_START, 'W') WEEK_OF_MONTH , case when to_char(WEEK_START, 'YYYYMM') = to_char(START_DT, 'YYYYMM') and to_char(WEEK_END, 'DD') < 7 then 1 whe..