南大通用GBase 8s 数据库 unpivot列转行函数功能介绍

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 版本 flowable 6.4.2适配gbase8s 数据库

在数据库操作中数据透视是一种常见的需求,它涉及到将行数据转换为列数据(Pivot)或将列数据转换为行数据(Unpivot)。在上一篇介绍文章中我们介绍了Pivot函数,在本篇文章中我们来看看Unpivot函数吧。

想看上一篇文章,请点击:南大通用GBase 8s pivot行转列函数功能介绍

GBase 8s unpivot函数的概述
Unpivot是Pivot操作的逆过程。它将表格中的一个或多个列转换为多个行,每个行包含一个唯一的值。这种转换使得原本在列中的多个值分布在多行中,从而可以对这些值进行纵向分析。

GBase 8s Unpivot的语法详解
在GBase 8s中,Unpivot操作的语法同样简单明了。通过指定目标字段和源字段,我们可以将数据从列格式转换为行格式,从而实现数据的深入分析。

SELECT ...
FROM ...
UNPIVOT [INCLUDE|EXCLUDE NULLS] --- 转换结果中是否包含NULL值的行,缺省不包含空值
(unpivot_val_col_lst --- 目标字段,新增值所在的列的列名
unpivot_for_clause --- 目标字段 ,新增列转换行后所在列的列名
unpivot_in_clause --- 源字段 ,需要转换为行的列名

WHERE ...
GBase 8s Unpivot示例
先创建一个 pivot 操作后的结果集用于unpiovt的举例。

create view v_emp as select from (SELECT deptno,job, sal1 FROM emp)
PIVOT( SUM(sal1)
FOR deptno IN
(10 as d1, 20 d2,30 d3)) ;
select
from v_emp;
Result:
job d1 d2 d3
president 5000.00
manager 2450.00 5825.00
salesman 1500.00 1250.00 2850.00
clerk 800.00 3000.00

4 row(s) retrieved.
--用例1:

SELECT * FROM v_emp
UNPIVOT
(
deptsal ---指定列转换行后计算值的列的列名
FOR saldesc ---指定列转换行后所在列的列名
IN (d1, d2, d3) --需要转换成行的列
);
Result:

job saldesc deptsal
president d1 5000.00
manager d1 2450.00
manager d2 5825.00
salesman d1 1500.00
salesman d2 1250.00
salesman d3 2850.00
clerk d1 800.00
clerk d2 3000.00
8 row(s) retrieved.
GBase 8s的unpivot转换查询注意事项
unpivot 查询可以作用于任何例,不仅仅是聚合后的列或 pivot 操作后的列,可以对任何表、任何视图的列进行 unpivot操作。

一个 unpivot 查询可以返回的最大行数为:分组数 unpivot_in_clause 中指定的转换操作列(上述列子中为4(job) 3(转换列)=12,默认exclude nulls,不含空行,去掉4个空行,则结果为8)。

GBase 8s限制了unpivot_in_clause 中指定的转换列数目最多 256 列;

GBase 8s要求unpivot_in_clause 中的列必须是相同的数据类型。

GBase 8s要求unpivot_for子句的项个数与unpivot_in子句中的AS项表达式数目保持一致。

在pivot 中,pivot_in_clause 和pivot_clause中可以指定别名。unpivot 语法中也允许使用别名,但是只能给 unpivot_in_clause 中定义的列指定别名。且GBase 8s只能是常量表达式,unpivot_in_clause 中的别名,GBase 8s不能支持加单引号。

其他使用上限制可以参考《GBase 8s V8.8 SQL 指南:语法.pdf》

GBase 8s数据库官方文档:官方文档

相关文章
|
28天前
|
Linux 数据库 数据安全/隐私保护
GBase 数据库 加密客户端---数据库用户口令非明文存放需求的实现
GBase 数据库 加密客户端---数据库用户口令非明文存放需求的实现
|
28天前
|
SQL 存储 BI
gbase 8a 数据库 SQL合并类优化——不同数据统计周期合并为一条SQL语句
gbase 8a 数据库 SQL合并类优化——不同数据统计周期合并为一条SQL语句
|
28天前
|
SQL 数据库
gbase 8a 数据库 SQL优化案例-关联顺序优化
gbase 8a 数据库 SQL优化案例-关联顺序优化
|
29天前
|
数据库连接 Linux Shell
Linux下ODBC与 南大通用GBase 8s数据库的无缝连接配置指南
本文详细介绍在Linux系统下配置GBase 8s数据库ODBC的过程,涵盖环境变量设置、ODBC配置文件编辑及连接测试等步骤。首先配置数据库环境变量如GBASEDBTDIR、PATH等,接着修改odbcinst.ini和odbc.ini文件,指定驱动路径、数据库名称等信息,最后通过catalog.c工具或isql命令验证ODBC连接是否成功。
|
28天前
|
JSON JavaScript 关系型数据库
node.js连接GBase 8a 数据库 并进行查询代码示例
node.js连接GBase 8a 数据库 并进行查询代码示例
|
28天前
|
SQL 数据库
gbase 8a 数据库 shm满导致gclusterd进程异常
gbase 8a 数据库 shm满导致gclusterd进程异常
|
28天前
|
网络安全 数据库
gbase 8a 数据库 安装8ampp 常见ssh报错问题
gbase 8a 数据库 安装8ampp 常见ssh报错问题
|
29天前
|
存储 机器学习/深度学习 监控
南大通用GBase 8s数据库onbar基础使用教程
数据备份与恢复是确保数据安全和业务连续性的关键。onbar作为GBase 8s数据库的备份工具,需配合存储管理器使用,通过配置BAR_BSALIB_PATH等参数,实现数据的备份与恢复。本文详细介绍了onbar的配置、备份、恢复及监控流程,帮助数据库管理员构建高效的数据保护方案。
|
29天前
|
数据库连接 数据库 C#
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(上)
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(上)
|
29天前
|
数据库连接 数据库 C#
Windows下C# 通过ADO.NET方式连接南大通用GBase 8s数据库(下)
本文接续前文,深入讲解了在Windows环境下使用C#和ADO.NET操作南大通用GBase 8s数据库的方法。通过Visual Studio 2022创建项目,添加GBase 8s的DLL引用,并提供了详细的C#代码示例,涵盖数据库连接、表的创建与修改、数据的增删查改等操作,旨在帮助开发者提高数据库管理效率。