Oracle 오라클 피벗(1) - LISTAGG, WM_CONCAT
[Oracle] 오라클 피벗(1) - LISTAGG, WM_CONCAT 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ 오라클 피벗, listagg, wm_concat (피벗, 첫번째) ] 입니다. :) 여러 Row 값을 하나의 컬럼으로 돌려서 가져오고 싶은때가 있다. 이때 , 등 구분자를 통해 가져오는 방법이다. (ex 갓대희, 김동수, 김치맨 ) (오라클에서 피벗턴 가능 하다 => 세로정렬을 가로정렬로 전환) 다음과 같은 로그인 히스토리가 있다고 가정하자. ▶ 임시 데이터 생성 WITH TEMPLOGINLOG AS ( SELECT 'MOBILE' AS ID, '갓대희' AS NAME FROM DUAL UNION ALL SELECT 'PC' AS ID, '갓대희' AS NAME FROM DUAL UNIO..
2020. 6. 12.
Oracle 오라클 피벗(2) - PIVOT, UNPIVOT, (행을 열로, 열을 행으로)
[Oracle] 오라클 피벗(2) - PIVOT, UNPIVOT, (행을 열로, 열을 행으로) 안녕하세요. 갓대희 입니다. 이번 포스팅은 [ 오라플 피벗, 두번째 ] 입니다. :) 업무를 하다보면 행을 열으로 전환한다던지, 열을 행으로 전환해야하는 업무가 간혹 발생한다. 이때 보통 decode 또는 case when을 통해 행 => 열 전환을 하였을 것이다. 이를 편하게 해결 할 수 있는 기능이 Oracle 11g부터 제공된다. PIVOT - 행을 열로 변환할 때 사용하는 방법으로 기존 GROUP BY 와 집계함수(MAX, SUM 등), DECODE를 사용하는 방법을 대체한다. 코드가 매우 간결 해진다. - PIVOT 절은 GROUP Function 을 포함한 계산식을 정의 하며 FOR 절은 값을 구분할..
2020. 6. 12.
oracle 비율로 배분 후 나머지 마지막에 합산
oracle 비율로 배분 후 나머지 마지막에 합산 select b.key_cd, b.key_seq, b.key_qty, b.aloc_qty, b.last_seq, ratio_to_report(b.key_qty) over() * 100 as rate, decode(key_seq, last_seq, 1000 - sum(aloc_qty) over() + aloc_qty, aloc_qty) as rtn_qty from ( select a.key_cd, row_number() over(order by key_cd) as key_seq, a.key_qty, floor(1000 * key_qty / sum(key_qty) over()) as aloc_qty, count(*) over() as last_seq from..
2019. 12. 2.
user_source, sys.all_objects
oracle select * from user_source where upper(text) like upper('%하하하%') mssql SELECT P.spid, p.loginame, P.login_time, P.last_batch, P.status, p.hostname, P.program_name, P.cmd, C.client_net_address FROM sys.sysprocesses AS P, sys.dm_exec_connections AS C WHERE P.spid = C.session_id select * From INFORMATION_SCHEMA.ROUTINES select * From INFORMATION_SCHEMA.TABLES select * From INFORMATION_SCHEMA...
2018. 11. 5.