2016-11-08 71 views
0

我做了一个简单的查询:当我在kdb中求和时,为什么它是空白的?

select sum(sol) from data 

和它的结果返回空白。我检查是否有任何空值,它没有任何空值。我怎么知道什么是错的?

+0

下列语句返回什么? q)元数据 q)计数数据 谢谢 –

+0

你是通过控制台,还是像Studio一样的UI来做这件事? –

+1

-3!从数据返回中选择总和(sol)? – user2242865

回答

1

请确保您没有将结果赋值给变量或以分号结尾,因为这会抑制结果的立即输出。

q)data:([]sol:1 2 3 4 5) 
q) 
q) /Expected result. 
q)select sum(sol) from data 
sol 
--- 
15 
q) 
q) /Output suppressed by semi-colon. 
q)select sum(sol) from data; 
q) 
q) /Output suppressed by variable assignment. 
q)example:select sum(sol) from data 
q) 

此外,即使数据中没有任何记录(例如:计数数据= 0),它仍将输出列名,但没有结果的下方。

q)data:([]sol:()) 
q) 
q)select sum(sol) from data 
sol 
--- 

q) 

数据集中不应该影响输出(至少总和)的一个空值,但如果你想更换空值(零例如,你可以做到这一点)

q)update 0^sol from `data 

此用途的运算符为^ (fill)

+0

谢谢!当我做了查询从数据选择列,它给出了所有的值。但是当我从数据中选择总和(col)时,它给出了列名和空白。不知道为什么。之后我没有输入分号。我检查了没有空值 – Terry

+0

如果你做元数据,输出是什么? –

+0

也许它的列中的一个值不是int。你知道我怎么能排除这个价值吗? – Terry

2

您的总和可能太大而无法存储为整数?这将创建一个空白/空

q)tab:([] col1:1 2i,0Wi-1i) 
q) 
q)tab 
col1 
---------- 
1 
2 
2147483646 
q) 
q)meta tab 
c | t f a 
----| ----- 
col1| i 
q) 
q) 
q)select sum col1 from tab 
col1 
---- 

q) 
相关问题