首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >kdb+/q数据透视表将多列转换为单个列?

kdb+/q数据透视表将多列转换为单个列?
EN

Stack Overflow用户
提问于 2018-11-14 04:07:17
回答 2查看 626关注 0票数 2

下表如下:

代码语言:javascript
运行
复制
date acct sec qtya qtyb qtyc
----------------------------
11   1    xx  10   60   110
22   2    yy  20   70   120
33   3    zz  30   80   130
44   2    xx  40   90   140
55   3    yy  50   100  150

使用以下语句创建:

代码语言:javascript
运行
复制
t:([]date:11 22 33 44 55;acct:1 2 3 2 3;sec:`xx`yy`zz`xx`yy;qtya:10 20 30 40 50;qtyb:60 70 80 90 100;qtyc:110 120 130 140 150)

给出一种返回数据的方法如下:

代码语言:javascript
运行
复制
date acct sec qty
-----------------
11   1    xx  10
11   1    xx  60
11   1    xx  110
22   2    yy  20
22   2    yy  70
22   2    yy  120
33   3    zz  30
33   3    zz  80
33   3    zz  130
44   2    xx  40
44   2    xx  90
44   2    xx  140
55   3    yy  50
55   3    yy  100
55   3    yy  150

可以使用以下语句创建:

代码语言:javascript
运行
复制
q)T:([]date:11 11 11 22 22 22 33 33 33 44 44 44 55 55 55;acct:1 1 1 2 2 2 3 3 3 2 2 2 3 3 3;sec:`xx`xx`xx`yy`yy`yy`zz`zz`zz`xx`xx`xx`yy`yy`yy;qty:10 60 110 20 70 120 30 80 130 40 90 140 50 100 150)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-11-14 07:54:59

使用flip

代码语言:javascript
运行
复制
q)ungroup select date , acct, sec , qty: flip (qtya;qtyb;qtyc) from t
票数 2
EN

Stack Overflow用户

发布于 2018-11-14 04:13:32

q)ungroup 3!select date,acct,sec,qty:(qtya,'qtyb,'qtyc) from t

代码语言:javascript
运行
复制
date acct sec qty
-----------------
11   1    xx  10
11   1    xx  60
11   1    xx  110
22   2    yy  20
22   2    yy  70
22   2    yy  120
33   3    zz  30
33   3    zz  80
33   3    zz  130
44   2    xx  40
44   2    xx  90
44   2    xx  140
55   3    yy  50
55   3    yy  100
55   3    yy  150
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53293058

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档