1

我编写了一个包装 aq 查询的函数,它返回一个包含三列的表 - c1、c2 和 vals。如何创建一个网格(二维数组),使 c1 作为 x 轴,c2 作为 y 轴,并在相应的单元格中设置值。例如,如果表中的一行是 c1:A c2:B value:100,我想在 x 轴上显示 A,在 y 轴上显示 B,在 (A,B) 对应的单元格中显示 100。

我感谢您的帮助。

输入:
_c1_¦ _c2_¦vals
================-
_A_¦ _B_¦ 100
_A_¦ _Y_¦ 110
_X_¦ _Y_¦ 120
_X_¦ _T_¦ 220

输出:
_ _¦ _B_¦ _Y_¦ _T_¦
================-
_A_¦100¦ 110¦000¦
_X_¦000¦ 120¦220¦

为错误的格式道歉,我不知道如何创建一个合适的表格。

4

1 回答 1

3

您可以尝试旋转您的结果表:

q)tt:flip`c1`c2`vals!(`a`a`x`x;`b`y`y`t;100 200 300 400)
q)tt
c1 c2 vals
----------
a  b  100
a  y  200
x  y  300
x  t  400
q)0^exec (distinct tt`c2)#c2!vals by c1:c1 from tt
c1| b   y   t
--| -----------
a | 100 200 0
x | 0   300 400

您可以查看数据透视表以获取更多信息。

于 2014-03-12T16:44:41.217 回答