数据分析--积累--presto--一列转多行--数组分割展开
我们在做数据分析时,有时候需要使用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--一列转多行--数组分割展开相关推荐
- 【Python数据分析】利用Python删除EXCEL表格中指定的列数据或行数据
如何利用Python删除EXCEL表格中指定的列数据?今天与大家一起分享一下DataFrame对象的drop()函数,drop()函数可根据标签删除EXCEL表格中的列数据或行数据,其语法格式如下: ...
- matlab 列转行,postgresql 行转列,列转行后加入到一个整体数据
这里行转列的基本思想就是使用max,因为其他列下面都是NULL,所以可以Max最后就只能得到有值的这行 普通的查询: SELECT icd , case when (ROW_NUMBER() OVER ...
- Algs4-1.1.13编写一段代码,打印出一个M行N列的二维数组的转置(交换行和列)
1.1.13编写一段代码,打印出一个M行N列的二维数组的转置(交换行和列). public class Test { public static void main(String[] arg ...
- pandas删除数据行中的重复数据行、基于dataframe所有列删除重复行、基于特定数据列或者列的作何删除重复行、删除重复行并保留重复行中的最后一行、pandas删除所有重复行(不进行数据保留)
pandas删除数据行中的重复数据行.基于dataframe所有列删除重复行.基于特定数据列或者列的作何删除重复行.删除重复行并保留重复行中的最后一行.pandas删除所有重复行(不进行数据保留) 目 ...
- Pandas常见的数据过滤方法、通过列条件筛选行数据
Pandas常见的数据过滤方法.通过列条件筛选行数据 不废话了,直接看代码吧: 一般情况下,前面5种就覆盖了绝大多数需求 import pandas as pd import numpy as npd ...
- excel总行数 java_计算Excel工作表列中的行数(提供的Java代码)
参考我之前的问题 How to calculate number of rows in a column of Excel document using Java,我能够计算给定表格中的总列数.现在, ...
- 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 通道数
- code vs 把所有行拼接成一行_关于SQL Server将一列的多行内容拼接成一行的问题讨论...
示例 昨天遇到一个SQL Server的问题:需要写一个储存过程来处理几个表中的数据,最后问题出在我想将一个表的一个列的多行内容拼接成一行,比如表中有两列数据 : 类别名称 AAA 企业1 AAA 企 ...
- oracle 动态sql列转行_Oracle 行转列 动态出转换的列
10月的第二天,前天写了个Oracle中行转列的pivot的基本使用方法,然后,因为pivot的用法中,正常情况下,我们需要转出多少个列,都得在我们的sql中完完整整地写出,而不能直接在里面写个查询来 ...
最新文章
- 计算器,利用灰度图的顶帽扣出数字
- 软件设计原则——接口隔离原则
- c语言有图小游戏,【图片】C语言小游戏~贪吃蛇【c语言吧】_百度贴吧
- Basis Cash动态铸币税阈值和债券发行上限提案正式生效
- java thread already started_自定义类加载器
- 多个html5页面背景音乐,HTML5页面背景音乐代码 网页背景音乐通用代码
- 学习 Bootstrap 5 之 Sizing 和 Spacing
- 小水智能-智能楼宇智慧建筑3D可视化系统,为房屋建设增加智能化
- [翻译] ogre 2.0 移植手册 - 4 合成器
- 微博吃瓜总是晚一步才知道,程序员直接写了一个热搜提醒工具
- 织梦系统基本参数php,织梦后台系统基本参数新增的变量数据库修改
- 计算机应用基础 制作表格说课稿,使用Word制作表格说课稿.doc
- Linux IP代理筛选系统
- 【Java】链表的基本操作
- Ubuntu更新-换源问题
- 密码学归约证明——哈希签名范式的安全性
- 使用循环完成剪刀石头布游戏
- 光纤的损耗机理 散射损耗 吸收损耗 弯曲损耗
- echart 正负图
- IOS---UIColor RGB颜色对照表