Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kdb 具有多个键控列的透视表_Kdb - Fatal编程技术网

Kdb 具有多个键控列的透视表

Kdb 具有多个键控列的透视表,kdb,Kdb,我有下表: t:(([]y:2001 2002) cross ([]m:5 6 7) cross ([]sector:`running`hiking`swimming`cycling)),'([]sales: 14 12 5 9 4 894 1 4 87 12 24 6 4 8 64 354 3 4 86 43 1053 2 43 4); y m sector sales ------------------------ 2001 5 running 14 200

我有下表:

t:(([]y:2001 2002) cross ([]m:5 6 7) cross ([]sector:`running`hiking`swimming`cycling)),'([]sales: 14 12 5 9 4 894 1 4 87 12 24 6 4 8 64 354 3 4 86 43 1053 2 43 4);

y    m    sector   sales
------------------------
2001 5    running  14   
2001 5    hiking   12   
2001 5    swimming 5    
2001 5    cycling  9    
2001 6    running  4    
2001 6    hiking   894  
2001 6    swimming 1    
2001 6    cycling  4    
...    
2002 5    running  4    
2002 5    hiking   8    
2002 5    swimming 64   
2002 5    cycling  354  
2002 6    running  3    
...
我想按
部门
透视
销售额
值,同时保留前两列
y
m
列,以便生成的表如下所示:

y    m   cycling hiking running swimming
--------------------------------------
2001 5   9       12     14      5       
2001 6   4       894    4       1       
2001 7   6       12     87      24      
2002 5   354     8      4       64      
2002 6   43      4      3       86      
2002 7   4       2      1053    43
依照


如果您需要一个正常的表格,可以通过
()xkey
取消查询结果。

做得很好,这是正确的答案。此外,该表可以使用
0
而不是
()xkey
,尽管后者可能更适合那些使用kdb的人,也更友好。谢谢Callum。我倾向于相信
0
使用过度,即使可以节省一些输入,也不应鼓励使用。kdb+之外的任何人(例如Python开发人员)都可以通过查找文档来了解xkey的功能。这对于
0是不正确的作为
在Q中重载严重。但我同意你的看法,很高兴知道
0构造。
q) P:asc exec distinct sector from t;
q) exec P#(sector!sales) by y:y,m:m from t