728x90

PostgreSQL 7

[PostgreSQL] LAG, LEAD 사용하기

LAG와 LEAD는 어떤 함수일까? 🤔 조회 결과 또는 결과 내 특정 집합 안에서 특정 컬럼의 이전 행의 값(LAG) 또는 다음 행의 값(LEAD)을 구하는 함수이다. 이전 또는 다음 행의 값을 구한다는 것은 알겠는데 어떤 경우에 사용되나요? 🙋‍♂️ 아주 자주 쓰이는 함수는 아니지만, 이전 행의 값과 현재 값을 비교하거나 계산할 때 복잡하게 만들어야 하는 쿼리를 LAG, LEAD 함수를 쓰면 한 줄로 간단하게 끝낼 수 있다. 아래의 예시를 보자. 위와 같은 데이터가 있고, 총무팀의 3일 전 비용과 현재 비용을 비교하여 값이 오른 행만을 추출하려 한다면 어떻게 해야 할까? 복잡하게 보이지만 LAG 함수를 사용하면 3일 전 비용을 가져오는 컬럼을 만들 수 있다. select *, lag(cost, 3) o..

💾DB 2022.07.08

[PostgreSQL] Extract 함수 (날짜 시간 추출)

Extract 함수는 PostgreSQL에서 날짜의 특정 부분을 추출하는 함수이다. 년도(year), 월(month), 일(day) 등을 추출할 수 있고, 사용 방법과 어떤 부분을 추출할 수 있는지는 아래에서 알아보자. 먼저 Extract는 아래와 같이 사용할 수 있다. EXTRACT(field from source) field는 year, month, day 등의 날짜 또는 시간의 데이터 요소를 뜻하고, source는 실제 timestamp값을 의미한다. 먼저 field로 사용할 수 있는 인자에 대해 알아보자. 여러 인자가 있지만, 실제 업무에서 많이 사용하는 것들 위주로 한번 정리해보았다. Field 설명 YEAR 년도 MONTH 월 ( 1 ~ 12 ) DAY 일 ( 1 ~ 31 ) DOW 요일 ( ..

💾DB 2022.07.06

[PostgreSQL] pgAgent

PostgreSQL에서 스케줄러를 통해 특정 쿼리 또는 프로시저를 실행시키고자 할 때, PostgreSQL의 pgAgent를 사용할 수 있다. pgAgent의 설치 방법과 사용법을 알아보자. 먼저 pgAgent를 설치하기 위해서는 당연히 PostgreSQL설치가 선행되어야 한다. PostgreSQL 설치 시 stackbuilder도 함께 설치하고, 설치가 완료되면 PostgreSQL 설치 폴더의 bin 파일 하위 stackbuilder를 실행한다. stackbuilder를 실행하여 다음과 같이 pgAgent를 선택하여 설치를 진행한다. 단계에 따라 설치하면 되고, 중간에 PostgreSQL 설치 시 지정했던 password와 window password를 입력하는 항목이 나오니 설치했던대로 입력하자! p..

💾DB 2022.06.10

[PostgreSQL] UPDATE/DELETE JOIN

PostgreSQL에서 UPDATE 시 다른 테이블의 내용을 참조하여야 할 때 다음과 같이 사용 가능하다. UPDATE product SET "Amount" = 1 FROM material m, worker w WHERE m.id = product."Material_id" AND w.id = product."Worker_id" AND m."Code" = 'test' AND w."Name" = '홍길동' INNER JOIN과 LEFT JOIN 구문 사용할 수 없고, 위와 같은 방식으로 from절에 테이블들을 나열하여 사용한다. UPDATE의 target이 되는 테이블은 from절에 들어가지 않는다는 것을 유의하자! DELETE문에서 JOIN을 사용해야 할 때, 다음과 같이 사용한다. DELETE FROM ..

💾DB 2022.01.24

[PostgreSQL] import csv file

개발을 하다 보면 엑셀로 정리된 데이터를 DB 테이블에 Insert 하여 작업하는 경우가 종종 있다. 이런 경우 엑셀 데이터를 Postgresql DB로 Import 하는 방법에 대해 알아보자. 예를 들어 다음과 같은 데이터가 있다고 생각해보자. 첫 번째 열부터 순서대로 이름, 나이, 주소를 나타내는 인적정보에 관한 데이터이다. 다음 데이터를 csv파일로 저장하게 되면 다음과 같은 형태로 저장되고, 기본적인 csv파일 저장 옵션은 ','(쉼표)로 구분이다. 이제 csv파일을 가지고 Postgresql DB에 Import 해보자. copy 테이블명(id, field1, field 2) from 'C:\test.csv' with delimiter ',' csv header; 위와 같은 명령어로 csv파일을 ..

💾DB 2021.08.25

[PostgreSQL] import csv file with pgAdmin

지난 포스팅에 이어 pgAdmin을 사용하여 엑셀 데이터를 Postgresql DB로 Import 하는 방법에 대해 알아보자. 위와 같이 pgAdmin화면에서 import 하고자 하는 테이블을 우클릭하여 나오는 메뉴들 중 Import/Export를 선택한다. 이후 다음과 같이 순서대로 Import/Export를 설정, 파일 경로 지정, Header옵션 선택, Delemiter 지정 순으로 진행한다. 위와 같이 진행하면 끝!! 쿼리 또는 pgAdmin을 사용하면 간단하게 csv파일을 import할 수 있다. 본인의 상황에 맞게 사용하면 조금 더 슬기로운 개발생활을 이어나갈 수 있지 않을까 생각해본다.

💾DB 2021.08.25

[PostgreSQL] dblink사용하기

개발 시 데이터베이스를 이용하다 보면 다른 데이터베이스에 있는 정보를 조회해야 하는 경우가 종종 있다. 위와 같이 test2 DB에서 test DB의 정보를 조회하는 경우이다. 먼저 dblink를 사용하기 위해서는 몇 가지 알아야 하는 정보들이 있다. 당연하겠지만 접근하여 데이터를 가져오고자 하는 서버의 ip, DB이름, 사용자계정, port 정보를 알고 있어야 원하는 DB로 접속하여 데이터를 가져올 수 있다. 먼저 DBLink를 사용하기 위한 쿼리를 보자! 위의 쿼리를 보면 크게 세부분으로 나눌 수 있다. 먼저 첫번째 부분은 접근하고자 하는 DB의 dbname, port, host, user, password 정보를 작성하고, 두번째 부분은 가져올 테이블의 조회 쿼리, 세번째 부분은 가져올 column..

💾DB 2021.08.25
728x90