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;