--- 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 ![](https://i.imgur.com/ED6Mn9z.png) 此表沒有主鍵,它可能包含重複項。 此表的每一行都包含產品名稱和在市場上銷售的日期。 ## 題目說明: 編寫一個 SQL 查詢來查找**每個日期**銷售的不同產品的數量及其名稱。 每個日期的已售產品名稱應按字典順序排序。 返回以 sell_date 排序的結果表。 查詢結果格式如下例所示。 ![](https://i.imgur.com/u7eQjR8.png) ## 解題: 以下圖解為第一個例題 [參考](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