展平数组
如需将 ARRAY 转换为一组行(即执行展平操作),请使用 UNNEST 运算符。UNNEST 获取一个 ARRAY,然后返回一个表,ARRAY 中的每个元素均占该表的一行。

由于 UNNEST 破坏了 ARRAY 元素的顺序,您可能需要恢复表中的顺序。为此,请使用可选的 WITH OFFSET 子句返回另一个包含各数组元素偏移量的列,然后使用 ORDER BY 子句按偏移量对行进行排序。

示例

SELECT *
FROM UNNEST(['foo', 'bar', 'baz', 'qux', 'corge', 'garply', 'waldo', 'fred'])AS element
WITH OFFSET AS offset
ORDER BY offset;+----------+--------+
| element  | offset |
+----------+--------+
| foo      | 0      |
| bar      | 1      |
| baz      | 2      |
| qux      | 3      |
| corge    | 4      |
| garply   | 5      |
| waldo    | 6      |
| fred     | 7      |
+----------+--------+

请注意,对于相关交叉联接,UNNEST 运算符为可选运算符,CROSS JOIN 可表示为逗号联接。上述示例使用此简写表示法后变为:

WITH sequences AS(SELECT 1 AS id, [0, 1, 1, 2, 3, 5] AS some_numbersUNION ALL SELECT 2 AS id, [2, 4, 8, 16, 32] AS some_numbersUNION ALL SELECT 3 AS id, [5, 10] AS some_numbers)
SELECT id, flattened_numbers
FROM sequences, sequences.some_numbers AS flattened_numbers;+------+-------------------+
| id   | flattened_numbers |
+------+-------------------+
|    1 |                 0 |
|    1 |                 1 |
|    1 |                 1 |
|    1 |                 2 |
|    1 |                 3 |
|    1 |                 5 |
|    2 |                 2 |
|    2 |                 4 |
|    2 |                 8 |
|    2 |                16 |
|    2 |                32 |
|    3 |                 5 |
|    3 |                10 |
+------+-------------------+

sql 数组三 展平数组相关推荐

  1. js算法数组flat展平的几种方法

    数组的展平,主要是指的是数组嵌套数组转为一维数组,总结了一下几种方法 es6原生的方法 链接: es6中的flat let arr = [1, 2, [3, 4]].flat() console.lo ...

  2. 展平数组(flatten、ravel)--numpy

    1. flatten()函数 1.1 函数功能 返回将输入数组展平成一维的副本数组,生成的新数组是原数组的深层拷贝(copy),两个数组相互独立,对新数组的修改不会影响原数组 1.2 函数语法 nda ...

  3. java操作数组(一维数组、二维数组的声明和遍历)

    java操作数组(一维数组.二维数组的声明和遍历) 1.一维数组 三种声明数组的方法和四种遍历数组的方法 public static void main(String[] args) {//静态初始化 ...

  4. Python计算两个numpy数组的交集(Intersection)实战:两个输入数组的交集并排序、获取交集元素及其索引、如果输入数组不是一维的,它们将被展平(flatten),然后计算交集

    Python计算两个numpy数组的交集(Intersection)实战:两个输入数组的交集并排序.获取交集元素及其索引.如果输入数组不是一维的,它们将被展平(flatten),然后计算交集 目录

  5. Flatten Nested Arrays(展平嵌套数组)

    这个题目是在一个公司现场面谈的时候的一个题目.虽然对这种找工作上来就做题目的现象比较反感. 但是大环境如此,也只能被蹂躏了. 中文描述 题目要求比较简单:[1,2,[3],[[4]],5,6] -&g ...

  6. 《Python数据分析基础教程:NumPy学习指南(第2版)》笔记6:第三章 常用函数2——中位数、方差、日期、展平

    本章将介绍NumPy的常用函数.具体来说,我们将以分析历史股价为例,介绍怎样从文件中载入数据,以及怎样使用NumPy的基本数学和统计分析函数.这里还将学习读写文件的方法,并尝试函数式编程和NumPy线 ...

  7. 剑指offer 面试题三 找出数组中重复的数字

    1 import org.junit.Test; 2 3 import java.util.Arrays; 4 import java.util.HashSet; 5 6 public class D ...

  8. map的key可以试一个数组吗?_【自考】数据结构第三章,数组,期末不挂科指南,第5篇...

     数组 概念如下 数组可以看成线性表的一种推广,其实就是一种线性表,一维数组又称为向量 数据由一组具有相同类型的数据元素组成,并存储在一组连续的存储单元中 若一维数组中的数据元素又是一维数组结构,则 ...

  9. 第三章 Matlab数组

    第三章 Matlab数组 一维数组 一维数组的创建 一维数组中元素的提取 二维数组 二维数组的创建 二维数组中元素的提取 字符数组 字符数组的创建 字符数组的拼接 字符数组的显示 空数组 一维数组 一 ...

最新文章

  1. Enlightenment E19 将完整支持 Wayland
  2. Drug Target Review | 虚拟现实(VR)用于新药设计
  3. Hibernate Validation与Spring整合各注解的用法Demo
  4. mybatis框架入门程序:演示通过mybatis实现数据库的插入操作中实现返回结果的获取...
  5. Note cancel request的实现原理
  6. Qt connect()的第五种重载[=](){}
  7. 如何在分屏浏览中并排使用两个Mac软件界面
  8. windows桌面动态主题_如何在Windows 10上安装桌面主题
  9. RocketMQ 监控平台搭建与项目引入
  10. 一年级abb式词语并造句_一年级abb式词语并造句_一年级语文下册总复习
  11. 多重阴影的设置、鼠标激活时、相邻选择器的简介、display
  12. Unity3D Webplayer Socket网络通信经验分享
  13. 最新版CameraX入门(拍照、存储展示、切换前后摄像头、手电筒、闪光灯、手势伸缩、双击放大缩小)
  14. 服务器老被攻击?如何避免服务器被恶意攻击?
  15. SLF4J的高级写法
  16. 花花世界迷人眼,没有实力别赛脸,做Python实力派(万字精华,初学者,收藏必备!!!)
  17. 时间字符串和时间戳的转换
  18. 4个方面,系统总结个性化推荐系统
  19. 锐捷交换机配置MSTP以及VRRP
  20. python:线性回归分析实战案例

热门文章

  1. Winform开发框架里面使用事务操作的原理及介绍
  2. Clonezilla制作镜像时报错:extfsclone.c:bitmap free count err解决办法
  3. virtualbox vboxmanage命令
  4. javascript之作用域
  5. 批量部署OFFICE2013
  6. [Android1.5]DigitalClock自定义日期输出格式
  7. 边缘会话控制器SBC
  8. IDEA中报错spring-boot-maven-plugin:not found
  9. 点击链接微信html代码怎么写,html5微信分享代码怎么写呢?
  10. html中隔行的代码,js+css 控制表格隔行变色与单行高亮的代码