题目来源:LeetCode

编写一个 SQL 查询来查找每个日期、销售的不同产品的数量及其名称。
每个日期的销售产品名称应按词典序排列,并用逗号隔开。
返回按 sell_date 排序的结果表。

1:题目分析

①根据”按 sell_date 排序的结果表“,以及”查找每个日期、销售的不同产品的数量及其名称“,可以判断出需要对sell_date进行分组与排序,同时需要计算每个销售不同产品的数量

SELECT sell_date,
COUNT(DISTINCT product) AS num_sold,
product
FROM Activities
GROUP BY sell_date
ORDER BY sell_date;

②此时product结果只会显示日期首次出现的结果。根据题目:不同的销售产品名称应按词典序排列,并用逗号隔开,确定需要使用distinct和separator。
问题是如何将字段连接?
新学到group_concat,有点像Hive的CONCAT_WS(separator, str1, str2,…)

GROUP_CONCAT([DISTINCT] 要连接的字段 [ORDER BY ASC/DESC 排序字段] [SEPARATOR '分隔符'])

2:结果

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;

SQL按日期分组销售产品,使用group_concat和separator相关推荐

  1. 力扣刷题学习SQL篇——1-8 查询(按日期分组销售产品——利用聚合函数GROUP_CONCAT)

    力扣刷题学习SQL篇--1-8 查询(按日期分组销售产品--利用聚合函数GROUP_CONCAT) 1.题目 2.解法 3.group_concat() 1.题目 题目链接:https://leetc ...

  2. SQL对日期的一些处理

    获取当前日期: Oracle : sysdate Sqlserver :   getdate() MySQL:curdate() 获取当前周一: MySQL:  select subdate(curd ...

  3. oracle sql 平均分配 分组_SQL学习二

    训练大纲(第023天) 大家如果想快速有效的学习,思想核心是"以建立知识体系为核心",具体方法是"守破离".确保老师课堂上做的操作,反复练习直到熟练. 第41次 ...

  4. Excel 数据透视表教程大全之 04 按日期分组(教程含样本数据)

    什么是数据透视表? 您可以将数据透视表视为报告.但是,与静态报表不同,数据透视表提供数据的交互式视图.只需很少的努力(并且没有公式),您就可以从许多不同的角度查看相同的数据.您可以将数据分组,将数据分 ...

  5. [转帖]流言终结者 —— “SQL Server 是Sybase的产品而不是微软的”

    流言终结者 -- "SQL Server 是Sybase的产品而不是微软的" https://www.cnblogs.com/xxxtech/archive/2011/12/30/ ...

  6. SQL Server数据分组

    SQL Server数据分组 一.SQL Server Group By语句. Group By语句从英文的字面意义上理解就是"根据(by)一定的规则进行分组(Group)".它的 ...

  7. SQL中的分组函数的使用

    什么是分组函数? 分组函数是作用在一组数据中,返回一个结果的函数,包括组函数:AVG,COUNT,MAX,MIN,SUM: 数据说明 有五个表:学生表,老师表,课程表,学院表,课程成绩表. 表结构 初 ...

  8. SQL Server 日期和时间相关的数据类型有两种

    SQL Server 日期和时间相关的数据类型有两种: DateTime和SmallDateTime. DateTime: 需要8个字节,前4个字节用1900年1月1日以后的天数表示日期,后4个字节表 ...

  9. SQL Server日期格式的转换

    SQL Server日期格式的转换 [原创 2007-03-23 09:34:36]     字号: 大 中 小 SQL Server中文版的默认的日期字段datetime格式是yyyy-mm-dd ...

最新文章

  1. java httprequest选项_java 实现HttpRequest 发送http请求
  2. 【英语学习】【WOTD】scavenger 释义/词源/示例
  3. html有3d效果的网页,HTML5如何在网页中实现3D效果?
  4. Java 多态(一)
  5. 项目管理: Maven 让事情变得简单
  6. Mac文件管理技巧:灵活的颜色标记,更好地分类
  7. 静态对象和非静态对象的区别
  8. Unity第一人称可视化传送门制作
  9. 常见坐标系经纬度转换
  10. 数字音频IC的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  11. 怎样访问服务器的文件,怎样访问服务器上的mht文件
  12. 《广西经济社会发展报告(2019)》正式发布 聚焦发展热点
  13. 删库跑路(错误0x80070091:目录不是空的)该如何解决???还是别解决了。。。
  14. MFC应用程序无法正常启动(0x0150002)。请单击“确定”关闭应用程序
  15. 总成绩冒泡排序Java_输入班级48分的java考试成绩,并且将其顺序排序
  16. 数理逻辑学习笔记[0] 命题逻辑:语义
  17. USRP 型号对比与挑选
  18. 撸代码更有劲了(这应该算是福利吧)
  19. html文标题党,标题党:如何写出一个SEO与新媒体传播都吸引人的标题! - 蝙蝠侠IT...
  20. linux 磁盘分区 挂载 卸载 常用命令

热门文章

  1. c语言根据首字母判断星期几,C语言根据指定日期计算是星期几
  2. 瑞雷波频散曲线_瑞雷波多模式频散曲线的能量计算研究
  3. 全国计算机等级考试三级数据库技术-知识点汇总
  4. error: Something went wrong bootstrapping makefile fragments
  5. teamcenter 异步服务_Teamcenter 11版本最新特征
  6. 《华胥引》游戏剧情策划方案
  7. 电脑关机 重启 开机怎么看日志
  8. 网络面临中断和挑战,最新的网络监控解决方案
  9. 我所经历的Android面试
  10. 手把手讲解超详细python入门游戏项目‘打外星飞船’(四)