乍一看,这样的题写过的。

SparkSQL读取hive中的数据,行转列的两种方式【行转列专用函数,UDAF】https://blog.csdn.net/qq_41946557/article/details/103457590

Hive _偏门常用查询函数(一)附带实例(空字段赋值、 CASE WHEN、行转列)

https://blog.csdn.net/qq_41946557/article/details/102904642

都是写的类似的样例。

对于这道题也是这样。

select s.name,concat_ws(',',collect_set(s.grade)) grades from
(select name,substr(course_grade,4) grade from `student-course`) s
group by s.name

当我们放在mysql中运行时,发现在mysql中并没有collect_set这个函数。

也就是说这种写法是我们适用于HQL,也及时HIVE中的sql语句,那么在mysql中怎么写呢?

嗯。。。陷入沉思!!!

既然hql中有类似写法,就算sql中的函数没有,那么一定也会有类似的语法去解决这样的问题。毕竟hql才是类sql。

经过翻阅mysql函数,我发现一个美丽的函数    group_concat

select s.name,group_concat(s.grade) grades from
(select name,substr(course_grade,4) grade from `student-course`) s
group by s.name

结果展示:

就是我们想要的结果。。。

注意点:group_concat新函数

关于这个函数,后续我会写一个专门的博客。

Mysql的几个字符串函数【concat、concat_ws、group_concat】

https://georgedage.blog.csdn.net/article/details/103499629

以及substr的取值,对于一个字符串是从1开始数。。。

如 :

substr("123456",3)      结果是    3456

大剑无锋之mysql中的行转列如何写?【面试推荐】相关推荐

  1. 大剑无锋之Spark中的Driver是什么?【面试推荐】

    Spark中的Driver即运行Application的Main()函数并且创建SparkContext,其中创建SparkContext的目的是为了准备Spark应用程序的运行环境.在Spark中由 ...

  2. 大剑无锋之面试问到了Kafka???【面试推荐】

    kafka 面试题 1.如何获取 topic 主题的列表 2.生产者和消费者的命令行是什么? 3.consumer 是推还是拉? 4.讲讲 kafka 维护消费状态跟踪的方法 5.讲一下主从同步 6. ...

  3. 大剑无锋之SQL求用户最近的登录时间【面试推荐】

    表数据: 输出结果: 请用一条sql展示出来. 解题思路: 我们先用分组name看结果: select * from employees_plus group by name 结果: 发现展示的是以n ...

  4. 大剑无锋之UNION 和 UNION ALL (SQL)【面试推荐】

    SQL UNION 操作符 UNION 操作符用于合并两个或多个 SELECT 语句的结果集. 请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列.列也必须拥有相似的数据类型.同时,每 ...

  5. MySQL中的行级锁,表级锁,页级锁

    数据库锁是数据库系统中非常重要的一个概念,本文将深入分析数据库中的锁相关知识,您可点击下方音频收听或直接查看文稿中的文字. 在计算机科学中,锁是在执行多线程时用于强行限制资源访问的同步机制,即用于在并 ...

  6. Mysql中的行级锁、表级锁、页级锁

    转载自 Mysql中的行级锁.表级锁.页级锁 在计算机科学中,锁是在执行多线程时用于强行限制资源访问的同步机制,即用于在并发控制中保证对互斥要求的满足. 在数据库的锁机制中介绍过,在DBMS中,可以按 ...

  7. 如何合并mysql中的行_如何在MySQL中合并行?

    要合并MySQL中的行,请使用GROUP_CONCAT(). 让我们首先创建一个表-mysql> create table DemoTable734 ( Id int, Name varchar ...

  8. mysql中将列动态转换为行,mysql 行转列 MySQL数据库动态行转列

    想把mysql一个表的行转成列,图1是原表,想实现图2的样式SELECT MAX(CAS就是一个动态的行列转换 CREATE TABLE `c_wssb_zz` ( `aa011` varchar(1 ...

  9. python pandas库读取excel/csv中指定行或列数据详解

    通过阅读表格,可以发现Pandas中提供了非常丰富的数据读写方法,下面这篇文章主要给大家介绍了关于python利用pandas库读取excel/csv中指定行或列数据的相关资料,需要的朋友可以参考下 ...

最新文章

  1. 二叉树的镜像(数组,前后 遍历重建二叉树)
  2. Linux系统启动级别及grub配置(一)
  3. C#的反射机制调用方法
  4. java resume_Java JPushInterface.resumePush方法代码示例
  5. 一根数据线玩转树莓派Zero
  6. JPA中实现双向一对多的关联关系
  7. tensorflow中name_scope和variable_scope变量的使用
  8. VLC详细的使用说明以及配置说明综合示范实例精通VLC开发
  9. java 实现excel 导出功能
  10. 浅谈javascript的运行机制
  11. linux内存映射(一)
  12. 机器学习 周志华 第三章 推导详细过程
  13. 五步帮你实现用户画像的数据加工
  14. scrapy框架基础学习之囧事百科
  15. 【时间之外】区块链和BT的技术是孪生的吗?
  16. NOI OJ 1.3 11:计算浮点数相除的余数 C语言
  17. 关于gist.github.com网站不能访问的解决办法
  18. 从大数据看技术,为什么天猫双11是史上最大数字经济节日
  19. Xcode安装特定版本系统的模拟器(不支持断点下载所以总是下载失败)
  20. 智能电视和网络电视有什么区别

热门文章

  1. 技术、管理和技术管理
  2. HDU - 7008 水题(打表)
  3. 中石油训练赛 - Switches(高斯消元求逆矩阵+逆矩阵求线性方程组)
  4. HDU - 5769 Substring(后缀数组)
  5. 动态规划算法-07背包问题进阶
  6. VIM进阶-模式mode
  7. Lua table(表)
  8. 用Python实现插⼊排序
  9. 数据库相关中间件收录集
  10. Java集合框架:Set(HashSet,LinkedHashSet,TreeSet)