SELECT product, STRING_AGG(CAST(profit AS VARCHAR), ',') FROM sales GROUP BY product;
profit은 숫자이기 때문에 VARCHAR 타입으로 캐스팅을 해줘야 함
STRING_AGG도 함수 내 DISTINCT와 정렬을 하지만 다른 컬럼이 아닌 함수 내에 쓰인 컬럼에 대해서만 가능
( 글자에 대한 정렬만 가능 )
SELECT country, STRING_AGG(DISTINCT product, ',' ORDER BY product DESC) FROM sales GROUP BY country;
Example
연도별 판매한 product를 판매량이 높은 순으로 정렬
먼저, product별 profit 합계를 구한 서브쿼리를 활용
# PostrgreSQL은 FROM 절 서브쿼리에서 먼저 정렬을 하고 그대로 출력한다.
SELECT year, STRING_AGG(product, ',') as products
FROM (SELECT year, product, sum(profit) as profit FROM sales GROUP BY product, year ORDER BY profit DESC) a
GROUP BY year;
SELECT product, ARRAY_AGG(CAST(profit AS VARCHAR)) FROM sales GROUP BY product;
Example
select user_id || ' - ' || user_name from t_user_info where user_id = 'phc'
select Concat(user_id, ' - ', user_name) from t_user_info where user_id = 'phc'