目录
题目
找出每个日期、销售的不同产品的数量及其名称。每个日期的销售产品名称应按词典序排列。
返回按 sell_date
排序的结果表。
准备数据
## 创建库
create database db;
use db;
## 创建表
Create table If Not Exists Activities (sell_date date, product varchar(20));
## 向表中插入数据
Truncate table Activities;
insert into Activities (sell_date, product) values ('2020-05-30', 'Headphone');
insert into Activities (sell_date, product) values ('2020-06-01', 'Pencil');
insert into Activities (sell_date, product) values ('2020-06-02', 'Mask');
insert into Activities (sell_date, product) values ('2020-05-30', 'Basketball');
insert into Activities (sell_date, product) values ('2020-06-01', 'Bible');
insert into Activities (sell_date, product) values ('2020-06-02', 'Mask');
insert into Activities (sell_date, product) values ('2020-05-30', 'T-Shirt');
输入表
activities表
分析数据
对于2020-05-30,出售的物品是 (Headphone, Basketball, T-shirt),按词典序排列,并用逗号 ',' 分隔。 对于2020-06-01,出售的物品是 (Pencil, Bible),按词典序排列,并用逗号分隔。 对于2020-06-02,出售的物品是 (Mask),只需返回该物品名。
select
sell_date,
count(distinct product) as num_sold, -- 计算每个日期销售的不同产品数量
group_concat(distinct product order by product asc) as products -- 按词典序排列产品名称
from
activities
group by
sell_date
order by
sell_date;
总结
group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator ‘分隔符’]) ,它可以将同一个分下的行拼接在一起。