
DataBase/PostgreSQL 2022. 8. 1.
[PostgreSQL] WITH ORDINALITY를 사용하여 원하는 순서로 정렬하기
WITH ORDINALITY 절이 함수 호출에 추가되면 각 행에 대해 번호가 매겨진 모든 함수의 출력 열 뒤에 새 열이 추가된다. table처럼 별칭도 추가할 수 있다. 예제 1 SELECT * FROM unnest(ARRAY['a','b','c','d','e','f']) WITH ordinality; 예제 2 별칭 추가 예제 SELECT * FROM unnest(ARRAY['a','b','c','d','e','f']) WITH ordinality t(id, ord); 예제 3 정렬 순서를 변경하고 싶을 경우 원하는 순서 : 'c', 'e', 'f', 'd', 'b', 'e' SELECT * FROM unnest(ARRAY['a','b','c','d','e','f']) as t1(id) INNER joi..

DataBase/PostgreSQL 2022. 3. 11.
[PostgreSQL] 이전 행 및 다음 행을 비교하는 방법 - Lag와 Lead
📢 들어가며 전 행의 데이터를 비교하여 같으면 ''을 다르면 원래 값을 리턴하는 로직 구현해야 했다. Ag Grid 라이브러리에서 제공하는 valueFormatted, valueGetter, cellClassRulers 등을 사용할 때, 같은 데이터가 중복으로 2번 이상 타는 것이 문제였다. 중복으로 타면서 전 행의 데이터를 비교해야 하는데 자기 자신과 비교하게 되는 등의 문제가 발생했다. 이를 해결하고자 params.node.rowIndex를 받아서 체크하면서 해당 index보다 작으면 실행이 안되게 구현하였다. 적은 데이터일 때는 문제 없이 작동하는 듯 보였으나 무한 스크롤을 사용하는 서버 사이드 그리드이기에 스크롤할 때 문제가 발생한다. 결국, 이 문제는 서버에서 해결해야 했다. 알아보니 쿼리문에서..

DataBase/PostgreSQL 2022. 2. 21.
[PostgreSQL] 구분자로 구분된 문자열을 array 배열로 받기(split_part, string_to_array, unnest)
fruit table이 아래와 같은 데이터가 있다고 가정하자. id data 과일 사과|수박|딸기|오렌지|바나나 1. split_part :: 문자열을 구분자로 나눈 다음 몇 번째에 위치한 데이터를 가져오는 함수 먼저, split_part 를 사용하여 구분자로 구분하고 2번째에 위치한 데이터를 불러보자. select split_part(data,'|',2) as 두번째_과일 from fruit where id='과일' * 2를 뺄 경우, 오류가 발생한다. 2. string_to_array :: 문자열을 구분자로 구분하여 배열로 만드는 함수 문자열을 '|'로 구분하여 배열로 반환하는 쿼리문을 만들어보자. select string_to_array(data, '|') from fruit where id='..

DataBase/PostgreSQL 2022. 2. 21.
[PostgreSQL] drop, delete, truncate의 차이점
1. DROP 명령어 개념 : 테이블 자체를 삭제하는 명령어 설명 - 해당 테이블 자체가 삭제된다. - 해당 테이블에 생성되어있던 인덱스, 제약조건 등도 삭제된다. - 삭제 후 되돌릴 수 없다. - DROP TABLE [테이블명] 2. TRUNCATE 명령어 개념 : 테이블의 데이터를 전부 삭제하고 사용하고 있던 공간을 반납하는 명령어 설명 - 해당 테이블의 데이터만 모두 삭제되며 테이블 자체가 삭제되는 것은 아니다. - 해당 테이블에 생성되어있던 인덱스도 함께 삭제된다. - 조건을 걸지 못해 데이터를 한꺼번에 다 지운다. - 삭제 후 되돌릴 수 없다. - DDL이다. - TRUNCATE TABLE [테이블명] 3. DELETE 명령어 개념 : 테이블의 조건이 맞는 데이터를 삭제한다. 설명 - 데..
