【问题标题】:Getting Month from date field - KDB从日期字段获取月份 - KDB
【发布时间】:2013-04-17 12:15:41
【问题描述】:

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

【问题讨论】:

    标签: kdb


    【解决方案1】:

    类似下面的东西应该可以工作。如果数据在磁盘上进行了分区,请记住在 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
    

    【讨论】:

    • 谢谢,以上完美解决。也只是做 select Sales:sum sales by salesdate.month from table 也对我有用。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2015-02-22
      • 1970-01-01
      • 2013-08-26
      • 2016-08-20
      • 2021-10-20
      • 1970-01-01
      • 2023-01-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多