[oracle] 도메인별 접속통계 구하기 (집계 함수 활용)
--합계 OWITH parsed_visits AS ( SELECT REGEXP_SUBSTR(nvl(v_url,'직접'), '^(https?://)?([^/\\?]+)', 1, 1, NULL, 2) hn , COUNT(*) AS cnt FROM visiter GROUP BY ROLLUP(REGEXP_SUBSTR(nvl(v_url,'직접'), '^(https?://)?([^/\\?]+)', 1, 1, NULL, 2)))SELECT NVL(hn, '합계') AS hostname, cnt, ROUND(cnt / SUM(DECODE(hn, NULL, 0, cnt)) OVER () * 100, 1) AS rtrFROM parsed_visit..
2024. 12. 20.
ORACLE 문자열 자르기 / 정규식 / 공백처리
ORACLE 문자열 자르기 / 정규식 / 공백처리 ORACLE에서 정규식을 이용하여 문자열을 자르는 방법 REGEXP_SUBSTR SELECT '10|20||40|50' STR , REGEXP_SUBSTR('10|20||40|50','[^|]+',1,1) STR1 , REGEXP_SUBSTR('10|20||40|50','[^|]+',1,2) STR2 , REGEXP_SUBSTR('10|20||40|50','[^|]+',1,3) STR3 , REGEXP_SUBSTR('10|20||40|50','[^|]+',1,4) STR4 , REGEXP_SUBSTR('10|20||40|50','[^|]+',1,5) STR5 FROM DUAL REGEXP_SUBSTR을 사용하여 문자열을 구분할 수 있다. * REGEXP_..
2023. 11. 6.
[Oracle] Order by 1, 2, ... 구문의 의미와 사용 방법
[Oracle] Order by 1, 2,... 구문의 의미와 사용 방법 인수인계 받은 쿼리를 분석하던 중 아래의 구문을 발견하였다. "Order by 1, 2, 3 desc, 4" 이는 직관적으로 이해할 수 있다. "Order by 첫 번째 컬럼, 두 번째 컬럼, 세 번째 컬럼 desc, 네 번째 컬럼"이라는 의미이다. 오라클의 "Order by 상수"의 사용 방법은 아래와 같다. select 2 col1,'aaa' col2, 'A' col3 from dual UNION ALL select 2 col1,'aaa' col2, 'B' col3 from dual UNION ALL select 1 col1,'bbb' col2, 'B' col3 from dual ORDER BY 1, 3, 2 -- Order b..
2023. 6. 7.