glog : cupucharm

[MySQL] 집계함수 GROUP_CONCAT (LeetCode 1484) 본문

SQL

[MySQL] 집계함수 GROUP_CONCAT (LeetCode 1484)

오이호박참외 2024. 11. 2. 18:00
여러 행의 데이터를 하나의 문자열로 결합


🚂 GROUP_CONCAT

 MySQL에서 제공하는 집계 함수로, 여러 행의 데이터를 하나의 문자열로 결합하는 기능을 제공한다. 주로 그룹화된 데이터에서 특정 컬럼의 값을 연결하여 요약된 형식으로 보여줄 때 유용하다.

GROUP_CONCAT(column_name [ORDER BY column_name] [SEPARATOR 'separator'])
  • column_name: 결합할 컬럼의 이름.
  • ORDER BY: 결합할 값의 정렬 방식 (선택 사항)
  • SEPARATOR: 값 사이에 삽입할 구분자 (기본값은 콤마 ',')

🚃 GROUP_CONCAT 사용 방법

SELECT 
    sell_date, 
    COUNT(DISTINCT product) AS num_sold, 
    GROUP_CONCAT(DISTINCT product ORDER BY product SEPARATOR ',') AS products
FROM Activities a
GROUP BY sell_date;


🚟 GROUP_CONCAT 과 CONCAT

GROUP_CONCAT과 CONCAT 모두 MySQL에서 문자열을 결합하는 함수이다.

  GROUP_CONCAT CONCAT
개념 여러 행의 값을 하나의 문자열로 결합 여러 개의 문자열을 결합하여 하나의 문자열을 생성
목적 주로 집계 함수와 함께 사용되어 그룹화된 결과에서 특정 컬럼의 값을 연결할 때 사용 주로 개별 행의 데이터를 결합할 때 사용
반환 여러 행의 결과를 하나의 문자열로 반환

부서에 3명의 직원이 있다면, 결과는 'Sujin, Yeonwoo, Daye'처럼 여러 이름이 결합된 하나의 문자열
단일 행의 결과를 반환

first_name이 'Sujin'이고 last_name이 'Choi'인 경우, 결과는 'Sujin Choi'
옵션 ORDER BY와 SEPARATOR 옵션을 통해 결합된 문자열의 정렬 및 구분자를 지정할 수 있음

GROUP_CONCAT(name ORDER BY name SEPARATOR '; ')는 이름을 알파벳 순으로 정렬하고 세미콜론으로 구분함
구분자 옵션이 없음
단순히 주어진 문자열을 이어붙이는 기능만 제공

 

CONCAT는 단일 행의 여러 문자열을 결합하는 데 사용되고, 
GROUP_CONCAT는 여러 행의 값을 하나의 문자열로 결합하여 집계하는 데 사용된다.


리트코드 LeetCode 1484

https://github.com/cupucharm/LeetCode/tree/main/1484-group-sold-products-by-the-date

 

LeetCode/1484-group-sold-products-by-the-date at main · cupucharm/LeetCode

Collection of LeetCode questions to ace the coding interview! - Created using [LeetHub v3](https://github.com/raphaelheinz/LeetHub-3.0) - cupucharm/LeetCode

github.com