PostgreSQL 기초강의,PostgreSQL 기초강좌
81강 SQL 함수 정리 : PostgreSQL STRING_AGG Functions
SQL 함수 정리 81강 시작합니다.
이번 시간에는
▶ PostgreSQL STRING_AGG Functions
에 대해서 알아보는 시간입니다.
이번 시간에는 PostgreSQL STRING_AGG() 함수를 사용하여 문자열을 연결하고 문자열 사이에 구분자를 배치하는 방법에 대해 알아봅니다.
Introduction to PostgreSQL STRING_AGG() function
PostgreSQL STRING_AGG() 함수는 문자열 목록을 연결하고 문자열 사이에 구분자를 배치하는 집계 함수입니다. 함수는 문자열 끝에 구분 기호를 추가하지 않습니다.
다음은 STRING_AGG() 함수의 구문을 보여줍니다:
STRING_AGG ( expression, separator [order_by_clause] )
STRING_AGG() 함수는 두 개의 인수와 선택적 ORDER BY 절을 사용할 수 있습니다.
- expression은 문자열로 확인할 수 있는 모든 유효한 표현식입니다. 문자열 유형이 아닌 다른 유형을 사용하는 경우 해당 유형의 이러한 값을 문자열 유형에 명시적으로 캐스팅해야 합니다.
- separator는 연결된 문자열의 구분자입니다.
order_by_clause는 연결된 결과의 순서를 지정하는 선택적 절입니다. 형식은 다음과 같습니다:
ORDER BY expression1 {ASC | DESC}, [...]
STRING_AGG()는 반환 형식을 제외하고 ARRAY_AGG() 함수와 유사합니다. STRING_AGG() 함수의 반환 형식은 문자열이고 ARRAY_AGG() 함수의 반환 형식은 배열입니다.
AVG(), COUNT(), MAX(), MIN(), SUM()과 같은 다른 집계 함수와 마찬가지로 STRING_AGG() 함수도 GROUP BY 절과 함께 사용됩니다.
PostgreSQL STRING_AGG() function examples
샘플 DVD_RENTAL 데이터베이스의 film, film_actor 및 actor 테이블을 시연에 사용합니다.
erd에 관계 표시가 잘못되어 있는데
film : film_actor는 1:n
actor : film_actor는 1:n 관계입니다.
한 영화는 여러 배우가 출연하며, 배우는 여러 영화에 출연할 수 있습니다.
영화와 배우 사이에 film_actor라는 관계 테이블이 존재하는 형태입니다.
A) Using STRING_AGG() function to generate a list of comma-separated values
이 예에서는 STRING_AGG() 함수를 사용하여 필름 테이블에서 각 필름의 배우 이름 목록을 반환합니다:
SELECT
f.title,
STRING_AGG (
a.first_name || ' ' || a.last_name,
','
ORDER BY
a.first_name,
a.last_name
) actors
FROM
film f
INNER JOIN film_actor fa USING (film_id)
INNER JOIN actor a USING (actor_id)
GROUP BY
f.title;
B) Using STRING_AGG() function to generate a list of emails
다음 예제에서는 STRING_AGG() 함수를 사용하여 각 국가의 이메일 목록을 작성합니다. 각 목록의 전자 메일을 세미콜론으로 구분합니다.
SELECT
country,
STRING_AGG (email, ';') email_list
FROM
customer
INNER JOIN address USING (address_id)
INNER JOIN city USING (city_id)
INNER JOIN country USING (country_id)
GROUP BY
country
ORDER BY
country;
이번 시간에는 PostgreSQL STRING_AGG() 함수를 사용하여 문자열을 연결하고 문자열 사이에 구분자를 배치하는 방법에 대해 배웠습니다.
감사합니다.
본 강의는 PostgreSQL Tutorial을 참조합니다. https://www.postgresqltutorial.com/ |
Do it! SQL을 찾아 주셔서 감사합니다. 공감 ♥ , 댓글이 큰 힘이 됩니다. |
'IT > SQL 기초강좌 (PostgreSQL)' 카테고리의 다른 글
83강 SQL 함수 정리 : PostgreSQL ROW_NUMBER Function (149) | 2023.01.26 |
---|---|
82강 SQL 함수 정리 : PostgreSQL Window Functions (122) | 2023.01.25 |
80강 SQL 함수 정리 : PostgreSQL ARRAY_AGG Functions (59) | 2023.01.23 |
79강 SQL 함수 정리 : PostgreSQL Aggregate Functions (99) | 2023.01.22 |
78강 SQL 초석 다지기 : PostgreSQL Recursive Query (74) | 2023.01.21 |
댓글