---
tags: sql, LeetCode
---
# 1484.Group Sold Products By The Date
本題主要考驗 [合併欄位](https://dotblogs.com.tw/supershowwei/2016/01/26/145353)
`Group Sold Products By The Date`
透過`leetcode 1484`[Group Sold Products By The Date](https://leetcode.com/problems/group-sold-products-by-the-date/)來練習
#### 使用table

此表沒有主鍵,它可能包含重複項。
此表的每一行都包含產品名稱和在市場上銷售的日期。
## 題目說明:
編寫一個 SQL 查詢來查找**每個日期**銷售的不同產品的數量及其名稱。
每個日期的已售產品名稱應按字典順序排序。
返回以 sell_date 排序的結果表。
查詢結果格式如下例所示。

## 解題:
以下圖解為第一個例題 [參考](https://ithelp.ithome.com.tw/articles/10197780)
1. COUNT(DISTINCT PRODUCT) DISTINCT去除重複值(Mask)
GROUP BY SELL_DATE以 SELL_DATE作為依據算出筆數
2. 欄位合併部分使用FOR XML 語法搭配 PATH 模式把欄位合併的結果先 SELECT 出來。 目前狀態",Basketball,Headphone,T-Shirt"
3. 在使用STUFF將第一個 ' , '去掉即可
```sql=
SELECT SELL_DATE, COUNT(DISTINCT PRODUCT) NUM_SOLD,
STUFF((SELECT DISTINCT ','+ PRODUCT
FROM ACTIVITIES
WHERE SELL_DATE = A.SELL_DATE
FOR XML PATH('')),1,1,'') PRODUCTS
FROM ACTIVITIES A
GROUP BY SELL_DATE
```
By. @UEW2WaUHTqSmPOSfnfXrNw