PostgreSQL

우선적으로 오프라인 환경에 소프트웨어를 수동으로 설치할 땐 온라인 환경에서 패키지를 다운 받아서 오프라인 환경으로 보내고 오프라인 환경에 접속해서 로컬에 있는 패키징 파일만 실행시켜서 설치하는 방식으로 진행된다. 해당 포스팅에서는 온라인 Windows 환경에서 오프라인 Linux/Rocky8 환경에 PostgreSQL을 설치하는 과정을 다룬다.시스템 아키텍처 확인먼저 패키지를 설치하려는 pc의 시스템 아키텍처를 확인하자. 터미널에 다음 명령어를 입력하면 사용 중인 아키텍처가 출력된다.uname -m 나는 x86_64용 패키지를 다운받아서 진행했고, 만약 다른 아키텍처를 사용 중이라면 아키텍처에 알맞는 패키지를 다운받으면 된다. 만약 시스템 아키텍처가 나와 동일하고 설치하려는 postgresql의 버전도 ..
GROUPING() 함수는 SELECT 절에서 사용하는 함수이다. GROUPING() 함수의 인자로 그룹핑 대상인 컬럼을 지정하면 해당 컬럼이 NULL일 때 1, NOT NULL일 때 2를 반환하는 함수이다.SELECT B.DNAME , A.JOB , SUM(A.SAL) , GROUPING(B.DNAME) AS GP1 , GROUPING(A.JOB) AS GP2 FROM EMP A , DEPT B WHERE A.DEPTNO = B.DEPTNO GROUP BY ROLLUP(B.DNAME, A.JOB) ORDER BY 1,2; 이를 CASE-WHEN 절과 함께 활용하면 NULL 값을 소계, 총계 등으로 지정할 수 있다.SELECT CASE WHEN T.GP1 = 1 ..
CUBE() 함수는 인자로 받는 컬럼으로 만들 수 있는 모든 조합으로 집계하여 추출하는 함수이다. 위와 같은 결과를 얻으려면, 다음과 같이 작성할 수 있다.SELECT B.DNAME , SUM(A.SAL) FROM EMP A , DEPT B WHERE A.DEPTNO = B.DEPTNO GROUP BY CUBE(B.DNAME) ORDER BY 1; 얼핏보면 ROLLUP() 함수와 다를 거 없는 함수처럼 보이지만, CUBE() 함수는 받는 인자가 많아질수록 조합이 다양해져 출력하는 결과가 훨씬 많아진다. SELECT B.DNAME , A.JOB , SUM(A.SAL) FROM EMP A , DEPT B WHERE A.DEPTNO = B.DEPTNO GROUP BY C..
GROUPING SETS() 함수는 이전 포스팅에서 다뤘던 ROLLUP()과 마찬가지로 GROUP BY 절에서 사용하는 함수이며, 인자로 받는 컬럼 별 집계함수 값을 리턴하는 함수이다. 위와 같은 결과를 얻고 싶을 때, GROUPING SETS 함수를 활용하면 다음과 같이 짤 수 있다.SELECT B.DNAME , SUM(A.SAL) FROM EMP A , DEPT B WHERE A.DEPTNO = B.DEPTNO GROUP BY GROUPING SETS(B.DNAME) ORDER BY 1; 근데 뭔가 이상하지 않은가? 위와 같은 결과를 더 쉽게 추출하는 방법을 우리는 알고 있다.SELECT B.DNAME , SUM(A.SAL) FROM EMP A , DEPT B WHER..
일상적인 업무에서 쿼리를 짜다 보면, 합계를 구하고 싶을 때가 정말 많다. 예시로 DEPT 테이블의 부서명 컬럼을 기준으로 해당 부서에 속한 사원들의 총 급여를 구하려면 쿼리를 어떻게 짜야할까? 확장 GROUP 함수를 모른다면, 다음과 같이 작성했을 것이다.SELECT B.DNAME , SUM(A.SAL) FROM EMP A , DEPT B WHERE A.DEPTNO = B.DEPTNO GROUP BY B.DNAME UNION ALLSELECT NULL , SUM(A.SAL) FROM EMP A ORDER BY 1;  위 방식이 틀렸다는 것은 아니다. 하지만 확장 GROUP 함수를 쓴다면 다음처럼 간략하게 표현 가능하다.SELECT B.DNAME , SUM(A.SAL) ..
xoghks_h
'PostgreSQL' 태그의 글 목록