activitiessell_date, productsell_date로 정렬되어야 함.sell_date로 데이터를 그룹화하여 각 날짜마다 팔린 제품의 수를 계산.GROUP_CONCAT() 함수를 사용해 제품 이름들을 하나의 셀에 연결.DISTINCT와 ORDER BY를 사용해 제품 이름을 고유하고 정렬된 형태로 저장.SELECT
sell_date,
COUNT(DISTINCT product) AS num_sold,
GROUP_CONCAT(DISTINCT product ORDER BY product ASC) AS products
FROM
Activities
GROUP BY
sell_date;
COUNT(DISTINCT product): 각 날짜마다 판매된 고유한 제품의 수를 계산하여 num_sold로 표시.GROUP_CONCAT(DISTINCT product ORDER BY product ASC): 각 날짜마다 판매된 고유한 제품명을 알파벳 순서로 정렬하여 쉼표로 연결된 문자열로 반환.GROUP BY sell_date: sell_date를 기준으로 그룹화하여 날짜별로 데이터를 집계.GROUP_CONCAT() 함수 내부에서 ORDER BY와 DISTINCT를 사용할 수 있음. 이를 통해 데이터 정렬과 중복 제거가 가능.Input:
Activities table:
+------------+------------+
| sell_date | product |
+------------+------------+
| 2020-05-30 | Headphone |
| 2020-06-01 | Pencil |
| 2020-06-02 | Mask |
| 2020-05-30 | Basketball |
| 2020-06-01 | Bible |
| 2020-06-02 | Mask |
| 2020-05-30 | T-Shirt |
+------------+------------+
Output:
+------------+----------+------------------------------+
| sell_date | num_sold | products |
+------------+----------+------------------------------+
| 2020-05-30 | 3 | Basketball,Headphone,T-Shirt |
| 2020-06-01 | 2 | Bible,Pencil |
| 2020-06-02 | 1 | Mask |
+------------+----------+------------------------------+
GROUP_CONCAT() 함수 내부에서 DISTINCT와 ORDER BY를 활용할 수 있다는 사실을 잘 이해하고 사용한 것입니다.GROUP_CONCAT() 함수의 활용 방법과 ORDER BY, DISTINCT와의 조합을 통해 복잡한 문자열 조작을 효율적으로 처리할 수 있다는 점을 학습. 이러한 접근 방식을 통해 SQL에서 효율적인 데이터 그룹화와 집계가 가능함을 이해할 수 있었습니다.
GROUP_CONCAT() 함수의 Syntax 정리GROUP_CONCAT() 함수는 SQL에서 여러 행의 값을 하나의 문자열로 결합할 때 사용하는 함수입니다. 특히, 데이터베이스에서 문자열을 결합하여 출력할 때 유용하게 사용됩니다.
GROUP_CONCAT([DISTINCT] column_name ORDER BY column_name [ASC|DESC] SEPARATOR 'separator')
column_name: 결합할 열의 이름을 지정합니다.DISTINCT: 중복되는 값을 제거하고 결합합니다.ORDER BY: 결합할 값들을 정렬합니다. ASC(오름차순) 또는 DESC(내림차순) 옵션을 사용하여 정렬 방향을 지정할 수 있습니다.SEPARATOR 'separator': 값들 사이에 넣을 구분자를 지정합니다. 기본 구분자는 쉼표(,)입니다.-- 제품 이름들을 알파벳 순서로 정렬하고 쉼표로 구분하여 결합
SELECT
GROUP_CONCAT(DISTINCT product ORDER BY product ASC SEPARATOR ', ') AS products
FROM
activities;
GROUP_CONCAT() 함수는 여러 값을 하나의 문자열로 결합할 때 사용되며, 정렬 및 중복 제거 옵션을 활용하여 데이터를 원하는 형태로 출력할 수 있습니다.SEPARATOR를 통해 원하는 구분자를 설정할 수 있어 유연하게 사용 가능합니다.