我们在做数据分析时,有时候需要使用join等作表连接,或者说 通过一些数据作关联。

但是 如果需要的数据 是存储的一列中使用逗号分割,或者存储在数组中,就不能很方便的进行表连接。

presto提供了很方便的语法,可以把列转成多行。

场景一 字符串

person表中 多个数据保存在pets使用逗号分割
如下:

selectname,pets
from person

输出:

name pets
zzq summer,winter
ly spring,autumn

使用sql如下:

select name,split_pet
FROM person
CROSS JOIN UNNEST(SPLIT(pets,',')) AS t (split_pet)

输出如下:

name split_pet
zzq summer
zzq winter
ly spring
ly autumn

注意 非规范的字段串 可以使用replace进行处理成规范的字符串

如下:

REPLACE(pets, '(', '')

场景二 数组

person表中 多个数据保存在pets使用逗号分割
如下:

selectname,pets
from person

输出:

name pets
zzq [summer,winter]
ly [spring,autumn]

使用sql如下:

select name,split_pet
FROM person
CROSS JOIN UNNEST(pets) AS t (split_pet)

输出如下:

name split_pet
zzq summer
zzq winter
ly spring
ly autumn

参考文章:
https://blog.csdn.net/mao15827639402/article/details/108246430
https://blog.csdn.net/lzxlfly/article/details/108458110

数据分析--积累--presto--一列转多行--数组分割展开相关推荐

  1. 【Python数据分析】利用Python删除EXCEL表格中指定的列数据或行数据

    如何利用Python删除EXCEL表格中指定的列数据?今天与大家一起分享一下DataFrame对象的drop()函数,drop()函数可根据标签删除EXCEL表格中的列数据或行数据,其语法格式如下: ...

  2. matlab 列转行,postgresql 行转列,列转行后加入到一个整体数据

    这里行转列的基本思想就是使用max,因为其他列下面都是NULL,所以可以Max最后就只能得到有值的这行 普通的查询: SELECT icd , case when (ROW_NUMBER() OVER ...

  3. Algs4-1.1.13编写一段代码,打印出一个M行N列的二维数组的转置(交换行和列)

    1.1.13编写一段代码,打印出一个M行N列的二维数组的转置(交换行和列). public  class Test {     public static void main(String[] arg ...

  4. pandas删除数据行中的重复数据行、基于dataframe所有列删除重复行、基于特定数据列或者列的作何删除重复行、删除重复行并保留重复行中的最后一行、pandas删除所有重复行(不进行数据保留)

    pandas删除数据行中的重复数据行.基于dataframe所有列删除重复行.基于特定数据列或者列的作何删除重复行.删除重复行并保留重复行中的最后一行.pandas删除所有重复行(不进行数据保留) 目 ...

  5. Pandas常见的数据过滤方法、通过列条件筛选行数据

    Pandas常见的数据过滤方法.通过列条件筛选行数据 不废话了,直接看代码吧: 一般情况下,前面5种就覆盖了绝大多数需求 import pandas as pd import numpy as npd ...

  6. excel总行数 java_计算Excel工作表列中的行数(提供的Java代码)

    参考我之前的问题 How to calculate number of rows in a column of Excel document using Java,我能够计算给定表格中的总列数.现在, ...

  7. python数字图像的行 宽的不同处 cv2.resize(1389,1500) p1列宽 p2 行高 stop2.shape 得(640,960,3) v1列宽 v2 行高 v3 通道数

    python数字图像的行 宽的不同处 cv2.resize(1389,1500) p1列宽 p2 行高 stop2.shape 得(640,960,3) v1列宽 v2 行高 v3 通道数

  8. code vs 把所有行拼接成一行_关于SQL Server将一列的多行内容拼接成一行的问题讨论...

    示例 昨天遇到一个SQL Server的问题:需要写一个储存过程来处理几个表中的数据,最后问题出在我想将一个表的一个列的多行内容拼接成一行,比如表中有两列数据 : 类别名称 AAA 企业1 AAA 企 ...

  9. oracle 动态sql列转行_Oracle 行转列 动态出转换的列

    10月的第二天,前天写了个Oracle中行转列的pivot的基本使用方法,然后,因为pivot的用法中,正常情况下,我们需要转出多少个列,都得在我们的sql中完完整整地写出,而不能直接在里面写个查询来 ...

最新文章

  1. 计算器,利用灰度图的顶帽扣出数字
  2. 软件设计原则——接口隔离原则
  3. c语言有图小游戏,【图片】C语言小游戏~贪吃蛇【c语言吧】_百度贴吧
  4. Basis Cash动态铸币税阈值和债券发行上限提案正式生效
  5. java thread already started_自定义类加载器
  6. 多个html5页面背景音乐,HTML5页面背景音乐代码 网页背景音乐通用代码
  7. 学习 Bootstrap 5 之 Sizing 和 Spacing
  8. 小水智能-智能楼宇智慧建筑3D可视化系统,为房屋建设增加智能化
  9. [翻译] ogre 2.0 移植手册 - 4 合成器
  10. 微博吃瓜总是晚一步才知道,程序员直接写了一个热搜提醒工具
  11. 织梦系统基本参数php,织梦后台系统基本参数新增的变量数据库修改
  12. 计算机应用基础 制作表格说课稿,使用Word制作表格说课稿.doc
  13. Linux IP代理筛选系统
  14. 【Java】链表的基本操作
  15. Ubuntu更新-换源问题
  16. 密码学归约证明——哈希签名范式的安全性
  17. 使用循环完成剪刀石头布游戏
  18. 光纤的损耗机理 散射损耗 吸收损耗 弯曲损耗
  19. echart 正负图
  20. IOS---UIColor RGB颜色对照表

热门文章

  1. js制作秒杀倒计时效果:
  2. html、css、js实现普通计算器
  3. 台式机1080ti最低多少起_gtx1080ti_GTX1080ti配置的台式机
  4. c语言time_t转oletime,CTime、COleDateTime和CString之间的相互转化 | 求索阁
  5. 用机器学习的方法鉴别红楼梦作者
  6. 正切函数的查表法实现
  7. Android iOS设计尺寸规范
  8. ubuntu安装及使用教程
  9. 搜狗输入法不能输入中文,shift切换为中文输出的还是英文--------解决方法
  10. 80386读书笔记之保护虚拟地址存储方式(二)