일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 스프링시큐리티
- LeetCode SQL
- SQL
- kotlin 클래스
- 구글로그인
- 오라클
- MSA
- 스프링부트 채팅서버
- java8
- 코틀린 클래스
- oauth2
- SQL프로그래머스
- js
- 자바 스트림
- javascript
- spring boot
- SQL 문제풀이
- 자바8
- oracle
- 스프링부트
- Leetcode
- springboot
- 프로그래머스
- pygame
- 스프링
- Spring
- 자바스크립트
- mysql
- 파이게임
- python
Archives
- Today
- Total
웅겹살의 프로그래밍 삼매경
[SQL] postgreSQL ARRAY 배열함수 unnest, array_agg, array_to_string 본문
728x90
row 를 array 또는 string으로 변환하기
1. unnest() 는 array 데이터를 row로 변환
unnest 결과는 하단의 내용과 같다
2. array_agg, array_agg_string 적용
결과는 하단의 내용과 같다
array_agg 는 group by와 함께 사용하는 함수이다. group by 된 값들을 array로 반환.
distinct 와 order by 를 함께 이용하면 중복제거된 값을 구하거나, 원하는 순서로 정렬하여 array를 만들 수 있다.
ex : array_agg(distinct col2 order by col2)
-- 임시테이블 생성하여 테스트진행
with make_array as (
select unnest(array['고기', '고기', '고기', '채소', '채소']) as col1
, unnest(array['삼겹살', '항정살', '가브리살', '상추', '명이나물']) as col2
)
select
x.col1
, array_agg(x.col2) as array_agg결과
, array_to_string(array_agg(x.col2),',') as array_to_string결과
from make_array x
group by x.col1;
-- 🌟 distinct , order by 사용가능
select
x.col1
, array_agg(distinct x.col2 order by x.col2) as array_agg결과
, array_to_string(array_agg(distinct x.col2 order by x.col2),',') as array_to_string결과
from make_array x
group by x.col1;
728x90
'SQL > SQL공부' 카테고리의 다른 글
[SQL] 오라클 힌트 오라클 hint (sql 튜닝) (0) | 2022.10.11 |
---|---|
[SQL] postgreSQL 기본문법 정리 (0) | 2022.04.01 |
[SQL] Oracle CONCAT, || (문자열 합치기) (0) | 2021.06.11 |
[SQL] Oracle TO_CHAR (0) | 2021.06.10 |
[SQL] Oracle WITH절(임시테이블) (0) | 2021.06.09 |
Comments