从日期字段获取月份 - KDB

时间:2013-04-17 12:15:42

标签: kdb

我将销售数据存储在数据库中。 sales_date字段包含销售发生的日期。我想提取按月分组的数据,这样我就可以得到1月,2月等的汇总数据。有没有办法可以做到这一点,而不必提取整个数据然后手动完成?

2 个答案:

答案 0 :(得分:3)

以下内容应该有效。如果数据在磁盘上分区,请记住在where子句中包含该分区。

q)tbl:([]dt:20?(2013.01.01;2013.02.01;2013.01.03);sales:20?100000)
q)select sum sales by `month$dt from tbl
dt     | sales
-------| ------
2013.01| 701075
2013.02| 298200
q)select avg sales by `month$dt from tbl
dt     | sales
-------| --------
2013.01| 50076.79
2013.02| 49700

答案 1 :(得分:2)

你也可以使用更简单的形式:

q)t:([] date:10?.z.Z)                                                                   
q)select date.month from t                                                              
month  
-------
2013.10
2013.08
2004.09
2010.03
...