2

我将销售数据存储在数据库中。sales_date 字段包含销售发生的日期。我想提取按月分组的数据,以便获得一月、二月等的聚合数据。有没有办法可以做到这一点,而不必提取整个数据然后手动进行?

4

2 回答 2

3

您还可以使用更简单的形式:

q)t:([] date:10?.z.Z)                                                                   
q)select date.month from t                                                              
month  
-------
2013.10
2013.08
2004.09
2010.03
...
于 2014-11-17T23:15:33.703 回答
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
于 2013-04-17T13:04:23.853 回答