1484. Group Sold Products By The Date

 

按照sell_date列对数据进行分组,为了得到num_sold列,我们使用COUNT(DISTINCT product)来统计每个销售日期售出的唯一产品的数量。

使用GROUP_CONCAT()将多行中的多个值组成一个字符串:

GROUP_CONCAT(
    DISTINCT expression1
    ORDER BY expression2
    SEPARATOR sep
);

关键词 DISTINCT 确保了 expression1 列中的每个名称在连接的字符串中只包含一次。请注意,我们需要对唯一的名称进行升序排序,这是默认的顺序,因此可以省略参数 expression2。关键字 SEPARATOR 指定产品名称应以 sep 分隔。总而言之,我们使用 GROUP_CONCAT 如下。

GROUP_CONCAT(
    DISTINCT product
    SEPARATOR ','
);

这会将不同的产品名称连接到每个销售日期的单个字符串中。最后,我们根据 sell_date 对最终结果进行升序排序。这确保输出表的组织顺序是从最早的销售日期到最晚的销售日期。

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

 

posted @ 2024-01-19 02:13  我是球啊  阅读(7)  评论(0编辑  收藏  举报