news 2026/7/19 14:54:07

力扣-高频 SQL 50 题(基础版)-1484. 按日期分组销售产品

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
力扣-高频 SQL 50 题(基础版)-1484. 按日期分组销售产品

一、完整建表 SQL(MySQL 语法):

CREATE TABLE Activities ( sell_date DATE, product VARCHAR(30) ); 该表没有主键(具有唯一值的列)。它可能包含重复项。 此表的每一行都包含产品名称和在市场上销售的日期。
INSERT INTO Activities(sell_date, product) VALUES ('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排序的结果表。
结果表结果格式如下例所示。

三、 思路与解题

题目要求拆解

  1. 按照sell_date分组;
  2. num_sold:当天去重之后产品的个数;
  3. products:当天去重后的产品,字典升序排列,用逗号拼接;
  4. 最终结果按sell_date升序排序。

两个关键:

  1. GROUP_CONCAT(字段 ORDER BY 字段 ASC SEPARATOR ',')分组之后,把多行的字符串拼接成一行,ORDER BY可以指定拼接时的字典顺序;
  2. COUNT(DISTINCT product):分组前必须先去重:同一天同一个产品重复出现只算 1 次。

完整 AC 代码

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;

分步演示,拿示例数据推演

原始数据:

sell_dateproduct
2020-05-30Headphone
2020-06-01Pencil
2020-06-02Mask
2020-05-30Basketball
2020-06-01Bible
2020-06-02Mask
2020-05-30T-Shirt

针对2020‑05‑30

去重之后产品:Basketball, Headphone, T‑Shirt

  • COUNT(DISTINCT product)→ 3;
  • GROUP_CONCAT拼接得到Basketball,Headphone,T‑Shirt

2020‑06‑02:

去重之后只有Mask,数量为 1。

四、总结

group_concat(distinct 列 order by 列 asc separator '分隔符')

  • 不加DISTINCT:重复值都会拼接进去;
  • ORDER BY可以控制拼接时的排序顺序,完美契合本题字典序;
  • SEPARATOR '符号':默认分隔符是逗号,也可以改成空格或者别的字符

五、拓展(面试知识点)

  1. MySQL 默认GROUP_CONCAT拼接字符串长度有限制(默认 1024 字符),超长会被截断;真实业务里超长场景需要修改系统参数;
  2. 8.0 版本没有别的替代方案,分组拼接字符串GROUP_CONCAT是 MySQL 专属核心函数
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/19 14:50:20

## [特殊字符] 落地操作指南:从笨办法升级到聪明方法

📋 落地操作指南:从笨办法升级到聪明方法 第一步:开发前——用UFA架构从根源控制(5分钟搞定) 你要做的事: 打开TRAE,输入: 帮我设计一个[功能名称]的用例表,包含: 1. 用例名称 2. 前置条件 3. 操作步骤(≤5步) 4. 预期结果 5. 验证方式示例: 帮我设计一个用户…

作者头像 李华
网站建设 2026/7/19 14:48:29

米家API深度解析:Python智能家居编程控制的架构设计与实战应用

米家API深度解析:Python智能家居编程控制的架构设计与实战应用 【免费下载链接】mijia-api 米家API,使用Python控制米家设备 项目地址: https://gitcode.com/gh_mirrors/mi/mijia-api 在智能家居日益普及的今天,传统的APP控制方式已难…

作者头像 李华
网站建设 2026/7/19 14:47:56

阅读APP书源网络导入终极指南:告别复杂操作,一键畅读全网小说

阅读APP书源网络导入终极指南:告别复杂操作,一键畅读全网小说 【免费下载链接】Yuedu 📚「阅读」自用书源分享 项目地址: https://gitcode.com/gh_mirrors/yu/Yuedu 还在为寻找小说资源而烦恼吗?是否厌倦了繁琐的书源配置过…

作者头像 李华
网站建设 2026/7/19 14:45:02

MPI-IS Mesh可视化指南:meshviewer工具的10个实用技巧

MPI-IS Mesh可视化指南:meshviewer工具的10个实用技巧 【免费下载链接】mesh MPI-IS Mesh Processing Library 项目地址: https://gitcode.com/gh_mirrors/mesh6/mesh MPI-IS Mesh Processing Library是一款功能强大的网格处理工具包,其中的meshv…

作者头像 李华
网站建设 2026/7/19 14:44:00

小红书下载神器XHS-Downloader:终极无水印内容保存完整指南

小红书下载神器XHS-Downloader:终极无水印内容保存完整指南 【免费下载链接】XHS-Downloader 小红书(XiaoHongShu、RedNote)链接提取/作品采集工具:提取账号发布、收藏、点赞、专辑作品链接;提取搜索结果作品、用户链接…

作者头像 李华