728x90
반응형
GROUP BY 구문에서
사용할 수 있는 함수들이 여러 가지가 있겠지만,
흔히 알려진 것은 집계함수 입니다.
평균(AVG), 최대(MAX), 최소(MIN) 등....
그 외에도, xxx_agg() 라고 하는 함수도 사용할 수 있습니다.
PostgreSQL에서 지원하는 agg 함수는
json_object_agg, array_agg, string_agg 등이 있습니다.
반응형
1. json_object_agg() : 해당 그룹 안에 있는 요소를 키, 값 형태로 출력하고 싶을 때 사용합니다.(JSON 형태로 출력)
id | point | subject |
A1 | 10 | A |
B1 | 20 | B |
B2 | 30 | B |
C1 | 40 | C |
> select
subject,
max(point),
json_object_agg(id, point)
from table1 t1
group by subject
A | 10 | {"A1":10} |
B | 30 | {"B1": 20, "B2": 30} |
C | 40 | {"C1": 40} |
2. array_agg() : 해당 그룹 안에 있는 요소를 배열 형태로 출력하고 싶을 때 사용합니다.
> select
subject,
max(point),
array_agg(id)
from table1 t1
group by subject
A | 10 | {A1} |
B | 30 | {B1,B2} |
C | 40 | {C1} |
※ PostgreSQL에서 배열의 기본 형태는 [~] 이 아닌 {~} 형태임을 주의.
( [~]형태로 출력하고 싶을 땐, json_agg() )
3. string_agg() : 해당 그룹 안에 있는 요소를 문자를 나열하는 형태로 출력하고 싶을 때 사용합니다.
> select
subject,
max(point),
string_agg(id, ',')
from table1 t1
group by subject
A | 10 | A1 |
B | 30 | B1,B2 |
C | 40 | C1 |
728x90
'스마트웹앱콘텐츠전문가 > 데이터베이스' 카테고리의 다른 글
[MySQL]좌표 사이의 거리 구하기 (0) | 2024.08.26 |
---|---|
테이블 안에서 원하는 데이터 복사 (0) | 2022.01.28 |
[PostgreSQL]있으면 UPDATE, 없으면 INSERT (0) | 2021.11.24 |
[PostgreSQL] 현재시각에서 하루 전 데이터 조회 (0) | 2021.11.24 |
[postgresql]대소문자구분없이조회 (0) | 2021.06.14 |