본문 바로가기

DB

(24)
[Oracle] 분석함수, 윈도함수 - CUBE (소계와 전체 합계 출력) 서론 CUBE( ) : 각 소계와 전체 총계 출력 - 전체 합계까지 보여주기에 집계 컬럼들이 가질 수 있는 모든 경우에 대해 소계(소그룹)을 생성해야 하기에 ROLLUP에 비해 시스템 리소스를 더 사용함 - 컬럼이 N개 일 때, 2^N승의 소계(소그룹) 생성 - 모든 경우에 대한 소계를 구하기에 순서가 바뀌어도 데이터는 같음 ( ROLLUP은 순서 중요 ) - 예제. 부서별 평균 급여와 사원 수, 직급별 평균 급여와 사원 수, 부서와 직급별 평균 급여와 사원 수, 전체 평균 월 급여와 사원 수를 구하라. SELECT deptno, job, ROUND( AVG(NVL(sal, 0)), 1) "avg_sal", COUNT(*) "cnt_emp" FROM emp GROUP BY CUBE(deptno, job)..
[Oracle] 분석함수, 윈도함수 - ROLLUP (기준별 소계 요약) 서론 - 윈도함수 혹은 분석 함수 : 행(row)끼리 연산이나 비교를 쉽게 지원해주기 위한 함수 ROLLUP 함수 : 각 기준별 소계 요약 데이터들에 특정 기준을 주고 모아 합계(집계)를 보는 경우 (ex) 본사에서 월별 매장별 매출 합계를 보는 경우 GROUP BY의 확장 형태 복잡한 SQL을 짧게 만들고, 해당 데이터들을 반복적으로 읽는 것을 최소화해 속도를 빠르게 해줌 계층적 분류를 포함하고 있는 데이터 집계에 적합 ROLLUP( )에 지정된 컬럼들은 소계(소그룹)의 기준이 되는 컬럼임 (ex) 지정 컬럼 수가 N이라고 했을 때, N+1 Level의 소계(소그룹) 생성 지정된 컬럼의 순서가 바뀌면 결과도 바뀌어 컬럼 순서에 주의해야함 세 가지 요구사항으로 분리 가능 (1) 부서와 직업별 평균 급여와..
HomeBrew Mysql 설치 https://junhobaik.github.io/mac-install-mysql/ 간단하게 MySQL 설치하기 (Mac, HomeBrew) MacOS 재설치 후 기본적인 설정을 하면서 간단히 정리해본 MySQL 설치 과정 MySQL 설치 brew 명령어를 위한 HomeBrew 패키지 관리자 미설치시 아래 명령어를 통해 설치 필요 MySQL 설정 아래 명령어로 mysql junhobaik.github.io
[Mac] mysql homebrew로 설치 https://velog.io/@inyong_pang/MySQL-설치와-초기-설정 [MySQL] 설치와 초기 설정 for macOS MAC에서 MySQL설치방법은 MySQL Community Server dmg파일을 다운받아 설치하는 방법과 Homebrew로 MySQL 패키지 다운받아 설치하는 방법 두가지이다.MySQL 공식 dev 페이지에서 MySQL Community Server 를 다운받는다. velog.io
[Oracle] SQL 복수행 함수 (그룹 함수) - GROUP BY, HAVING, ROLLUP GROUP BY 절 - 그룹으로 묶기 위함 - 만약 그룹 조건이 여러 개일 경우 GROUP BY 절에 이어서 작성하면 됨 예시 1) 부서별 월급 평균을 구하라. SELECT DEPTNO, AVG(NVL(sal, 0)) FROM emp GROUP BY DEPTNO; 예시 2) 부서와 직업별 월급의 평균을 구하라. (단, 부서 번호와 직업에 따라 오름차순으로 정렬하라) SELECT deptno, job, AVG(NVL(sal, 0)) "AVG" FROM emp GROUP BY deptno, job ORDER BY 1, 2; - 주의사항 SELECT 절에 사용된 그룹 함수 이외 컬럼이나 표현식은 반드시 GROUP BY 절에 사용되어야 함. 한 마디로 그룹핑 대상이 아닌 컬럼을 SELECT 절에 작성해서는 안 ..
[Oracle] SQL 복수행 함수(그룹 함수) 그룹(Group) 함수 - 한 번에 여러 건의 데이터가 함수로 입력됨 - * 사용 시, Null 포함 - 컬럼 이름 사용 시, Null 값 제외한 컬럼 작업 COUNT( ) 함수 - 입력 데이터의 총 건수 반환 - * : Null 포함 / 컬럼명 : Null 미 포함 SUM( ) 함수 - 데이터들의 합계 계산 AVG( ) 함수 - Null 값은 자동으로 제외하고 평균 값이 계산됨 - 고로 Null 값을 가진 전체 인원의 평균 계산시 해당 부분을 수정해 다시 조회해야 함 - Null 값을 9으로 대체하는 방법도 있음 [ex] SELECT count(*), sum(comm), avg(nvl(comm, 0)) FROM emp; MAX( ) 함수 / MIN( ) 함수 - MAX : 최댓값 / MIN : 최솟값 ..
[Oracle] 단일행 함수 - 정규식(Regular Expression) (2) ※ 오라클 11g에 추가된 정규식 함수 REGEXP_COUNT 함수 REGEXP_COUNT(컬럼 또는 문자열, '카운트 대상 문자' [, 카운트 시작 위치] [, 정규식 옵션] ) - 특정 문자 카운트 - 카운트 대상 문자를 . (점)으로 할 경우 문자열 길이 카운트 검색 세 가지 방법 SELECT text, REGEXP_COUNT(text, 'aa') "method 1", REGEXP_COUNT(text, '[a]{2}') "method 2" , REGEXP_COUNT(text, '(a)(a)') "method 3" FROM T_REG;
[Oracle] 단일행 함수 - 정규식(Regular Expression) (1) 정규식(Regular Expression) SQL 문장에서도 유닉스에서 사용하는 정규식을 사용해 다양한 검색 가능 정규식(Regular Expression) - 유닉스에서 검색 할 때 주로 사용되는 기술 - 다양한 메타문자들을 사용해 검색 방법을 확장하는 것 이는 오라클 10g 버전부터 추가된 기능 오라클 like 구문 업그레이드 regexp_like 샘플예제 (정규표현식 기본 응용) 오라클에서 제공하는 정규표현식 지원 함수 regexp_like 를 이용하면 기존 like 구문에서 할 수 없었거나 아주 어렵게 구현했던 부분들을 아주 쉽게 구현할 수 있습니다. regexp_like 기본 구문(Syntax) 는 jack-of-all-trades.tistory.com 솔라리스, 리눅스 정규식 예시 ^(캐럿) ..