1484. 按日期分组销售产品

说在前面

🎈不知道大家对于算法的学习是一个怎样的心态呢?为了面试还是因为兴趣?不管是出于什么原因,算法学习需要持续保持。

题目描述

表 Activities

+-------------+---------+
| 列名         | 类型    |
+-------------+---------+
| sell_date   | date    |
| product     | varchar |
+-------------+---------+
该表没有主键(具有唯一值的列)。它可能包含重复项。
此表的每一行都包含产品名称和在市场上销售的日期。

编写解决方案找出每个日期、销售的不同产品的数量及其名称。
每个日期的销售产品名称应按词典序排列。
返回按 sell_date 排序的结果表。
结果表结果格式如下例所示。

示例 1:

输入:
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),只需返回该物品名。

解题思路

使用COUNT和DISTINCT函数计算每个sell_date日期的售出商品数量,使用GROUP_CONCAT和DISTINCT函数将每个sell_date日期售出的商品名称列表合并为一个字符串,其中商品名称按字母顺序排序并以逗号分隔。最终,根据sell_date日期升序排序。

GROUP_CONCAT是MySQL中的一个聚合函数,用于将多行数据中的某个字段值进行合并,并返回一个以指定分隔符分隔的字符串。

它的基本语法如下:

GROUP_CONCAT([DISTINCT] expr [ORDER BY {unsigned_integer | col_name | expr} [ASC | DESC]] [SEPARATOR separator])
  • DISTINCT:可选参数,用于去除重复的值。
  • expr:要合并的字段名或表达式。
  • ORDER BY:可选参数,用于指定合并后的字符串的排序方式。
  • separator:可选参数,用于指定合并后的值之间的分隔符,默认为逗号(,)。
  • GROUP_CONCAT可以在SELECT语句中与GROUP BY一起使用,通常用于对聚合后的结果进行合并操作。它将相同分组的多个行的某个字段值合并为一个字符串,并返回给查询结果集。

例如,假设有一个表格包含以下数据:

+----+-------+
| id | fruit |
+----+-------+
|  1 | Apple |
|  1 | Banana|
|  2 | Orange|
|  2 | Mango |
|  2 | Apple |
+----+-------+

我们可以使用GROUP_CONCAT来合并每个id对应的水果名称,以逗号分隔:

SELECT id, GROUP_CONCAT(fruit) AS fruits
FROM table_name
GROUP BY id;

查询结果如下:

+----+----------------------+
| id |        fruits        |
+----+----------------------+
|  1 | Apple,Banana         |
|  2 | Orange,Mango,Apple   |
+----+----------------------+

在上述示例中,GROUP_CONCAT将每个id对应的水果名称合并为一个字符串,并使用逗号分隔。这使得我们可以在一行中查看每个id对应的所有水果。

AC代码

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

公众号

关注公众号『前端也能这么有趣』,获取更多有趣内容。

说在后面

🎉 这里是 JYeontu,现在是一名前端工程师,有空会刷刷算法题,平时喜欢打羽毛球 🏸 ,平时也喜欢写些东西,既为自己记录 📋,也希望可以对大家有那么一丢丢的帮助,写的不好望多多谅解 🙇,写错的地方望指出,定会认真改进 😊,偶尔也会在自己的公众号『前端也能这么有趣』发一些比较有趣的文章,有兴趣的也可以关注下。在此谢谢大家的支持,我们下文再见 🙌。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/660456.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CIFAR-10数据集详析:使用卷积神经网络训练图像分类模型

1.数据集介绍 CIFAR-10 数据集由 10 个类的 60000 张 32x32 彩色图像组成,每类 6000 张图像。有 50000 张训练图像和 10000 张测试图像。 数据集分为5个训练批次和1个测试批次,每个批次有10000张图像。测试批次正好包含从每个类中随机选择的 1000 张图像…

易优CMS采集插件使用教程

本易优CMS采集教程说明如何使用易优CMS采集插件,批量获取互联网上的文章数据,并自动更新到易优cms(eyoucms)网站,快速丰富网站的内容。 目录 1. 下载并安装易优CMS采集插件 2. 对接网页文章采集工具 3. 采集数据发…

GPT-4级别模型惨遭泄露!引爆AI社区,“欧洲版OpenAI”下场认领

大家好,我是二狗。 这两天,一款性能接近GPT-4的模型惨遭泄露,引发了AI社区的热议。 这背后究竟是怎么回事呢? 起因是1月28日,一位名为“Miqu Dev”的用户在 HuggingFace 上发布了一组文件,这些文件共同组…

Steam爆火游戏幻兽帕鲁自建多人联机专用服务器配置要求

《幻兽帕鲁》这款多人游戏模式的全新开放世界生存制作游戏,在短短上线5天就卖出700万份,同时在线人数最高达到了180万人,创下Steam历史榜单第二名的好成绩,意料之外的爆火也一度导致幻兽帕鲁出现无法创建4人游戏房间、官方服务器连…

C语言-算法-最短路

【模板】Floyd 题目描述 给出一张由 n n n 个点 m m m 条边组成的无向图。 求出所有点对 ( i , j ) (i,j) (i,j) 之间的最短路径。 输入格式 第一行为两个整数 n , m n,m n,m,分别代表点的个数和边的条数。 接下来 m m m 行,每行三个整数 u …

VUE3:组合式API生命周期

1、onMounted 注册一个回调函数,在组件挂载完成后执行。 组件在以下情况下被视为已挂载: – 1. 其所有同步子组件都已经被挂载。 – 2. 其自身的 DOM 树已经创建完成并插入了父容器中。注意仅当根容器在文档中时,才可以保证组件 DOM 树也在文…

已定式,未定式【高数笔记】

【已定式】 将x-->? 的过程代入到lim中,如果得出的结果可以判断出,lim是有极限的,则为已定式 [举例] lim(1/x),x--> 无穷 ,即,1/ 无穷 0 ,所以为已定式 【未定式】 将x-->? 的过程代…

docker 搭建 Seafile 集成 onlyoffice

docker-compose一键部署yaml文件 version: "3"services:db:image: mariadb:10.11container_name: seafile-mysqlenvironment:- MYSQL_ROOT_PASSWORDdb_dev # Requested, set the roots password of MySQL service.- MYSQL_LOG_CONSOLEtruevolumes:- /share/ZFS18_D…

Rust - 变量

不管学什么语言好像都得从变量开始,不过只需要懂得大概就可以了。 但在Rust里不先把变量研究明白后面根本无法进行… 变量绑定 变量赋值❌ 变量绑定✔️ Rust中没有“赋值”一说,而是称为绑定。 int a 3; //C中的变量赋值 a 3; //python中的…

智慧工地可视化综合管理云平台 PC+APP

目录 一、智慧工地可视化数据大屏功能一览 1.首页 2.视频监控 3.机械设备 4.环境监测 5.安全管理 6.质量管理 7.劳务分析 8.进度管理 9.报警统计 二、项目人员管理 1.信息管理 2.信息采集 3.证件管理 危大工程管理 一、智慧工地可视化数据大屏功能一览 包括&am…

transformer_多头注意力机制代码笔记

transformer_多头注意力机制代码笔记 以GPT-2中多头注意力机制代码为例 class CausalSelfAttention(nn.Module):"""因果掩码多头自注意力机制A vanilla multi-head masked self-attention layer with a projection at the end.It is possible to use torch.nn…

【C语言】const修饰指针的不同作用

目录 const修饰变量 const修饰指针变量 ①不用const修饰 ②const放在*的左边 ③const放在*的右边 ④*的左右两边都有const 结论 const修饰变量 变量是可以修改的,如果把变量的地址交给⼀个指针变量,通过指针变量的也可以修改这个变量。 但…

电脑文件打不开是什么原因?常见原因有这9点

在日常生活和工作中,我们经常会使用电脑来处理文件。然而,有时候我们会遇到电脑文件打不开的情况,这给我们的工作和生活带来了很大的不便。本文将为大家介绍电脑文件打不开的原因,帮助大家更好地应对这一问题。 原因1、文件格式问…

交易策略开发:如何揣摩投资心理,研究交易策略

文章目录 揣摩其他投资者的心理,首先要知道他们学习了什么投资知识。永远记住策略一定是弱于机制的。每种交易技术是如何做交易的,各位可以对号入座**马丁网格类均线,MACD等指标类价格行为类缠论类对冲套利类基本面类订单流资金流秘籍类 揣摩…

论文解读:DeepBDC小样本图像分类

Joint Distribution Matters: Deep Brownian Distance Covariance for Few-Shot Classification 摘要 由于每个新任务只给出很少的训练样例,所以few -shot分类是一个具有挑战性的问题。解决这一挑战的有效研究路线之一是专注于学习由查询图像和某些类别的少数支持…

shell脚本自动备份数据库表

今日目标:shell脚本自动备份数据库中的表并记录执行日志和mysql输出日志 编写思路: (1)shell脚本运行mysql命令 (2)脚本输出记录到日志中 (3)定时任务自动执行shell脚本 1、she…

【Tomcat与网络9】提高Tomcat启动速度的八大措施

本文我们来看一下如何对Tomcat进行调优,我们对于Tomcat的调优主要集中在三个方面:提高启动速度、提高系统稳定性和提高并发能力,后两者很多时候是相辅相成的,我们放在一起看。 Tomcat现在一般都嵌入在SpringBoot里,因…

Linux 驱动开发基础知识——总线设备驱动模型(八)

个人名片: 🦁作者简介:学生 🐯个人主页:妄北y 🐧个人QQ:2061314755 🐻个人邮箱:2061314755qq.com 🦉个人WeChat:Vir2021GKBS 🐼本文由…

动网格-尺寸函数耦合运动(五)

尺寸函数 **尺寸函数(Size Function)**通常和局部体网格重构结合使用,尺寸函数用于控制重构过程中的网格分布。简单地说,尺寸函数的功能就是在运动边界处约束网格,使其维持在一个较小的尺度,在远离运动边界处,逐步将其…

Windows存储空间不足局域网文件共享 Dism备份系统空间不足

问题情景 在日常使用中难免遇到Windows的空间不足的情况,常用办法是清理垃圾释放空间,部分场景例如我们需要使用Dism备份完整系统,所以需要非常大的存储空间不够,如果空间不够什么才是最有效的方案呢? 我们假设身边没有…