난이도
Medium
문제
Table Activities:
+-------------+---------+
| Column Name | Type |
+-------------+---------+
| sell_date | date |
| product | varchar |
+-------------+---------+
There is no primary key for this table, it may contain duplicates.
Each row of this table contains the product name and the date it was sold in a market.
Write an SQL query to find for each date the number of different products sold and their names.
The sold products names for each date should be sorted lexicographically.
Return the result table ordered by sell_date.
The query result format is in the following example.
Example 1:
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 |
+------------+----------+------------------------------+
Explanation:
For 2020-05-30, Sold items were (Headphone, Basketball, T-shirt), we sort them lexicographically and separate them by a comma.
For 2020-06-01, Sold items were (Pencil, Bible), we sort them lexicographically and separate them by a comma.
For 2020-06-02, the Sold item is (Mask), we just return it.
나의 답
SELECT sell_date, COUNT(DISTINCT(product)) AS num_sold, GROUP_CONCAT(DISTINCT(product) SEPARATOR ',') as products
FROM Activities
GROUP BY sell_date
ORDER BY sell_date
핵심
💡 GROUP_CONCAT 함수는 그룹 내의 값을 결합하여 문자열로 반환하는 함수이다.
주로 GROUP BY와 함께 사용해 그룹별로 데이터를 요약하고, 그룹 내의 값들을 결합하여 하나의 문자열로 만든다.
GROUP_CONCAT 함수의 기본적인 사용법
GROUP_CONCAT(expression [ORDER BY clause] [SEPARATOR separator])
✔️ expression: 결합할 열이나 식
✔️ ORDER BY clause (선택적): 결합된 값들의 순서를 지정할 수 있습니다. 기본적으로는 정렬되지 않은 순서로 결합됩니다.
✔️ SEPARATOR separator (선택적): 결합된 값들 사이에 삽입할 구분자(separator)를 지정합니다. 기본값은 쉼표(,)입니다.
✔️ GROUP_CONCAT 함수는 SELECT 문에서 사용되며, 일반적으로 GROUP BY 절과 함께 사용됩니다.
'SQL' 카테고리의 다른 글
| [MYSQL] 값의 형변환을 해주는 CAST 함수 (0) | 2023.10.14 |
|---|---|
| 리트코드 1204. Last Person to Fit in the Bus (0) | 2023.08.08 |
| 리트코드(LeetCode) 1341. Movie Rating (1) | 2023.07.20 |
| 리트코드(LeetCode) 1211. Queries Quality and Percentage (0) | 2023.07.13 |
| 리트코드(LeetCode) 197. Rising Temperature (0) | 2023.07.12 |