力扣-按日期分组销售产品
2023-09-14 09:13:33 时间
大家好,我是空空star,本篇带大家了解一道简单的力扣sql练习题。
前言
一、题目:1484. 按日期分组销售产品
表 Activities:
+-------------+---------+
| 列名 | 类型 |
+-------------+---------+
| sell_date | date |
| product | varchar |
+-------------+---------+
此表没有主键,它可能包含重复项。
此表的每一行都包含产品名称和在市场上销售的日期。
编写一个 SQL 查询来查找每个日期、销售的不同产品的数量及其名称。
每个日期的销售产品名称应按词典序排列。
返回按 sell_date 排序的结果表。
查询结果格式如下例所示。
输入:
Activities 表:
+------------+-------------+
| sell_date | product |
+------------+-------------+
| 2020-05-30 | Headphone |
| 2020-06-01 | Pencil |
| 2020-06-02 | Mask |
| 2020-05-30 | Basketball |
| 2020-06-01 | Bible |
| 2020-06-02 | Mask |
| 2020-05-30 | T-Shirt |
+------------+-------------+
输出:
+------------+----------+------------------------------+
| sell_date | num_sold | products |
+------------+----------+------------------------------+
| 2020-05-30 | 3 | Basketball,Headphone,T-shirt |
| 2020-06-01 | 2 | Bible,Pencil |
| 2020-06-02 | 1 | Mask |
+------------+----------+------------------------------+
解释:
对于2020-05-30,出售的物品是 (Headphone, Basketball, T-shirt),按词典序排列,并用逗号 ‘,’ 分隔。
对于2020-06-01,出售的物品是 (Pencil, Bible),按词典序排列,并用逗号分隔。
对于2020-06-02,出售的物品是 (Mask),只需返回该物品名。
二、解题
1.正确示范①
提交SQL
select sell_date,
count(distinct product) num_sold,
group_concat(distinct product order by product separator ',') products
from Activities
group by sell_date
order by sell_date
运行结果
![](https://img-blog.csdnimg.cn/234541e4e3e845d18f0e66ff24e4767d.png)
2.正确示范②
提交SQL
select sell_date,
count(distinct product) num_sold,
group_concat(distinct product order by product) products
from Activities
group by sell_date
order by sell_date
运行结果
![](https://img-blog.csdnimg.cn/ae1481d685a642379844065446268754.png)
3.正确示范③
提交SQL
select sell_date,
count(distinct product) num_sold,
group_concat(distinct product ) products
from Activities
group by sell_date
order by sell_date
运行结果
![](https://img-blog.csdnimg.cn/8c8e6025461e4432a03593377e48f1dd.png)
4.其他
总结
separator
如果不加分隔符默认是,
distinct
有默认排序,使用distinct 关键字后会对distinct后面用到的关键字进行默认的升序排序;
group_concat
函数可以将多个行的值连接成一个字符串。
相关文章
- Sql server DATEADD日期函数的使用[通俗易懂]
- 软件测试|教你如何用Python获取昨天今天明天的日期
- PostgreSQL中常用的时间日期脚本使用教程
- 在linux中输出当前时间戳(当前日期+时间)详解程序员
- 根据生日的月份和日期计算星座的js代码详解编程语言
- java8 LocalDateTime/LocalDate/LocalTime、java.util.Date/java.sql.Date区别及日期转换方法详解编程语言
- Oracle技巧:轻松提取日期,让数据更精准(oracle提取日期)
- Oracle昨日之谜:解开神秘的昨日之旅(oracle昨天日期)
- MySQL:如何提取日期中的年份?(mysql日期年份)
- MySQL求解两个日期间隔天数实例(mysql计算两个日期之间的天数)
- 如何在MySQL中获取上个月的日期(mysql 上个月的日期)
- 按日期选择最晚日期与最早日期对应的数的差值
- phpSmartydate_format[格式化时间日期]
- javascript学习笔记(六)Date日期类型
- C语言小程序计算第二天日期示例代码
- 如何使用PHP获取指定日期所在月的开始日期与结束日期
- 判断日期是否能跨月查询的js代码