PostgreSQL 쿼리 정리1

김건모·2021년 4월 19일

postgresql

목록 보기
2/2

문자 채우기

LPAD(value, Integer, String)

LPAD는 좌측부터 설정한 문자를 채운다.

value : 값
Integer : 총 길이
String : 채울 문자
select LPAD(objectid::text, 5, '0') from table;
table에서 objectid의 길이를 5개로 설정하고 문자 0을 좌측부터 채움

RPAD

우측부터 설정한 문자를 채운다.

그룹 내 순위 결정

ROW_NUMBER() OVER (PARTITION BY column1 ORDER BY column2)

이 함수는 partition by column1 을 기준으로 그룹을 만들고
order by column2 기준으로 정렬한다.

column1 : 그룹할 컬럼명을 입력
column2 : 정렬할 컬럼을 입력 

아래 함수에 + OVER (PARTITION BY column1 ORDER BY column2)

  • ROW_NUMBER()
    정렬할 순위가 겹치는 경우 강제로 나눈다.
    1등이 2명이라면 1등 2등
  • RANK()
    정렬할 순위가 겹치는 경우 그 만큼 공백의 순위를 만든다
    1등이 2명이라면 다음 순위는 3등이다.
  • DENSE_RANK()
    정렬할 순위가 겹치는 경우와 상관 없이 순위를 만든다
    1등이 2명이여도 그 다음 순위는 2등이다.-

UPDATE ~ FROM

업데이트에 다른 테이블의 컬럼이 필요한 경우 사용한다.

UPDATE tableA SET tableA.column1 = tableB.column1
FROM tableB 
-- WHERE 조건 가능

INSERT ~ SELECT

row를 추가할 때 다른 테이블을 검색해서 추가한다.
루프를 돌면서 insert를 하는 것 보다 빠름

INSERT INTO tableA(column1,column2)
SELECT column1, column3 FROM tableB 
-- where 조건 가능

1개의 댓글

comment-user-thumbnail
2021년 4월 21일

오 ... 이제 SQL 까지 ㅋㅋ

답글 달기