力扣.sql.1484.按日期分组销售产品

news/2025/2/8 14:57:13 标签: leetcode, 算法, 职场和发展

 题目:

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

 解决方案:

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

 分析:

难点在于如何将每个日期的产品名称按词典序排序并连接成一个字符串。这需要用到GROUP_CANCAT函数。'SEPARATOR'用于指定字符串之间的分隔符。


http://www.niftyadmin.cn/n/5844990.html

相关文章

jmeter逻辑控制器9

1,简单控制器2,录制控制器3,循环控制器4,随机控制器5,随机顺序控制器6,if控制器7,模块控制器8,Include控制器9,事物控制器本文永久更新地址: 1,简单控制器 不…

【创建模式-单例模式(Singleton Pattern)】

赐萧瑀 实现方案饿汉模式懒汉式(非线程安全)懒汉模式(线程安全)双重检查锁定静态内部类 攻击方式序列化攻击反射攻击 枚举(最佳实践)枚举是一种类 唐 李世民 疾风知劲草,板荡识诚臣。 勇夫安识义,智者必怀仁…

MQTT:物联网时代的数据桥梁

探秘PcVue系列:E8 MQTT:物联网时代的数据桥梁 什么是MQTT? MQTT(Message Queuing Telemetry Transport)是一种基于发布 / 订阅模式的轻量级消息传输协议,专为资源受限设备和低带宽、高延迟或不稳定的网络环…

openai库 及LangChain 跟ChatGPT对话的主要接口

在 OpenAI 的官方 Python 库 (openai) 中,提交提示词(Prompt)等内容给 ChatGPT 进行处理的主要函数/接口如下: 1️⃣ openai.ChatCompletion.create() 用于与 GPT-4 / GPT-3.5 Turbo 进行多轮对话交互(适用于 ChatGPT…

Transformer中的嵌入位置编码

在Transformer中,使用余弦编码或其他类似的编码方式(如正弦-余弦位置编码)而不是简单的“0123456”这种数字编码,主要是因为位置编码的目标是为模型提供位置信息,同时又不引入过多的显式顺序假设。 主要原因如下&…

SSH工具之MobaXterm

视频介绍 系统运维之SSH工具 MobaXterm 图文教程 下载MobaXterm MobaXterm下载地址:https://mobaxterm.mobatek.net/download-home-edition.html 根据需求选择便携版(Portable)或者安装版(Installer)。 生成注册文件…

拆解Kotlin中的by lazy:从语法糖到底层实现

by lazy 是Kotlin中一个强大的属性委托机制,它主要用于实现属性的延迟初始化。所谓延迟初始化,就是在第一次访问该属性时才进行初始化,而不是在对象创建时就立即初始化。这种机制在很多场景下都能带来性能优势,特别是当属性的初始…

【Linux网络编程】之配置阿里云安全组

【Linux网络编程】之配置阿里云安全组 配置阿里云安全组阿里云安全组的概念配置安全组规则入方向基本概念补充ICMP协议安全组配置UDP协议安全组配置 出方向 配置云服务器主机的防火墙什么是防火墙Linux中防火墙的管理工具防火墙的作用常用命令介绍(firewalld&#x…