暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
金仓数据库KingbaseES行列转换.docx
1534
7页
12次
2022-03-01
免费下载
金仓数据库
KingbaseES
行列转换
关键字
行专列,列转行
, pivot, unpivot
概述
KingbaseES
V8R6C3B0071
版本开始通过扩展插件
(kdb_uls_funcon)
支持
pivot
unpivot
功能。在之前
的版本如果需要进行行列转换操作要如何处理呢?
下面介绍
pivot
unpivot
通用的写法,并给出了
pivot
unpivot
用法。
行转列(
pivot
构造数据:
create table pivot_t1(month integer,fruitname text,quantity integer);
insert into pivot_t1 values(1,'apple',1000);
insert into pivot_t1 values(2,'apple',2000);
insert into pivot_t1 values(3,'apple',3000);
insert into pivot_t1 values(4,'apple',4000);
insert into pivot_t1 values(1,'orange',1500);
insert into pivot_t1 values(2,'orange',2500);
insert into pivot_t1 values(3,'orange',3500);
insert into pivot_t1 values(4,'orange',4500);
insert into pivot_t1 values(1,'grape',1800);
insert into pivot_t1 values(2,'grape',2800);
insert into pivot_t1 values(3,'grape',3800);
insert into pivot_t1 values(4,'grape',4800);
insert into pivot_t1 values(1,'banana',1600);
insert into pivot_t1 values(2,'banana',2600);
insert into pivot_t1 values(3,'banana',3600);
insert into pivot_t1 values(4,'banana',4600);
1. case when
语法
test=# select month,
test-# sum(case fruitname when 'apple' then quanty end) as apple,
test-# sum(case fruitname when 'orange' then quanty end) as orange,
test-# sum(case fruitname when 'grape' then quanty end) as grape,
test-# sum(case fruitname when 'banana' then quanty end) as banana
test-# from pivot_t1 group by month order by 1;
month | apple | orange | grape | banana
-------+-----------+------------+----------+--------
1 | 1000 | 1500 | 1800 | 1600
2 | 2000 | 2500 | 2800 | 2600
3 | 3000 | 3500 | 3800 | 3600
4 | 4000 | 4500 | 4800 | 4600
(4 rows)
2. CROSSTAB
语法
crosstab()
函数由
tablefunc
扩展包提供。
安装扩展
create extension tablefunc;
test=# \df crosstab
函数列表
架构模式
|
名称
|
结果数据类型
|
参数数据类型
|
类型
----------+----------+--------------+---------------+------
public | crosstab | SETOF record | text |
函数
public | crosstab | SETOF record | text, integer |
函数
public | crosstab | SETOF record | text, text |
函数
函数说明:
crosstab ( sql text )
:生成一个“数据透视表”,其中包含行名称和
N
列值,其中
N
调用查询中指定的行类型决定。
crosstab ( source_sql text, category_sql text )
:产生一个“数据透视表”,其值列由第
二个查询指定。
crosstab ( sql text, N integer )
crosstab(text)
的废弃版本。
of 7
免费下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜