2017-09-14 359 views
0

我有一個表是這樣的:分離的日期和時間的日期時間戳

enter image description here

我需要找到量的總和中說每一秒或分鐘間隔。我嘗試使用xbar,但我似乎無法從數據中分離日期和時間。

另外我想問一下,我們如何在指定的時間間隔內添加總結賬戶的命令?

回答

1

你是對的; xbar可用於此分組。總和函數然後可以用於聚合每個創建的組:

select sum Amount by 1 xbar Time.minute from t 

或按時間列組(時間戳是基於整數)。

select sum Amount by Time from t 

詳情如下:

如果你的表是這樣的:

q})t: ([] Amount:`int$(); Time:`timestamp$()); 
q)show meta t 
c  | t f a 
------| ----- 
Amount| i 
Time | p 

,並使用以下數據:

q)`t insert (10?100;asc .z.p+10?00:10) 
q)show t 
Amount Time 
------------------------------------ 
58  2017.09.14D10:44:48.992850000 
68  2017.09.14D10:44:48.992850000 
45  2017.09.14D10:47:48.992850000 
2  2017.09.14D10:48:48.992850000 
... 

然後你可以使用XBAR到組表每分鐘間隔:

q)select sum Amount by 1 xbar Time.minute from t 
minute| Amount 
------| ------ 
10:44 | 126 
10:47 | 45 
10:48 | 41 
10:49 | 113 
... 

或者到組5個分鐘的間隔:

q)select sum Amount by 5 xbar Time.minute from t 
minute| Amount 
------| ------ 
10:40 | 126 
10:45 | 199 
10:50 | 210 

或者到組5秒的時間間隔:

q)select sum Amount by 5 xbar Time.second from t 
second | Amount 
--------| ------ 
10:44:45| 126 
10:47:45| 45 
10:48:45| 41 
10:49:45| 113 
... 

在金額欄的值將被相加的每個組。

作爲一個側面說明,你也可以通過在時間列不同的值組:

q)select sum Amount by Time from t 
Time       | Amount 
-----------------------------| ------ 
2017.09.14D10:44:48.992850000| 126 
2017.09.14D10:47:48.992850000| 45 
2017.09.14D10:48:48.992850000| 41 
2017.09.14D10:49:48.992850000| 113 
2017.09.14D10:51:48.992850000| 122 
2017.09.14D10:52:48.992850000| 88 

感謝。