【问题标题】:How to place a date range in alasql query with avg and group by clauses如何使用 avg 和 group by 子句在 alasql 查询中放置日期范围
【发布时间】:2015-10-22 14:40:01
【问题描述】:

我已经构建了一个以数组作为数据源的 alasql 查询。 我表中的列是(有 1000 多行):

城市、TravelDate、Q1、Q2、Q3、Q4

1, 2015-05-31, 6, 6, 5, 5

我的要求是找到按城市和年份和月份分组的问题(6 岁以下)的平均值。

PLUS 仅适用于特定日期范围

[] 包含数组中列的索引号

到目前为止我的查询:

var res = alasql('SELECT [11] as City, [0], AVG([1]), AVG([2]),AVG([3]),AVG([2]) FROM ?D WHERE [1] <= 5 AND [2]<= 5 AND [3]<= 5 AND [4]<= 5 GROUP BY [11],[0]'[data]);

上面的查询仍然有效:

如果我放置WHERE [0] >= '2014-01-01' AND [0] <= '2015-05-31',它不起作用

注意事项:

我试过用双引号 "" 但还是不行

数据数组中的日期列也是在 for 循环中使用 JavaScript 日期方法构造的 和 new Date()

这些行包含日期结果,包括任何一天,因此对于给定的月份和年份,可以有多个具有相同日期的行。

有谁知道如何构造我的查询,以便我的输出类似于

城市,TravelDate,AvgQ1,AvgQ2,AvgQ3,AvgQ4

换句话说,按城市和(年和月)分组(而不是城市、年、月)在我的日期范围要求内

【问题讨论】:

    标签: javascript jquery arrays date alasql


    【解决方案1】:

    您可以使用 DATE() 函数将 JavaScript 日期转换为“YYYY-MM-YY”格式:

    WHERE DATE([0]) >=  "2014-01-01" AND DATE([0]) <= "2015-05-31"
    

    对于按年和月分组,您可以使用:

    GROUP BY YEAR([0]), MONTH([1])
    

    【讨论】:

      猜你喜欢
      • 2019-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-28
      • 2017-03-03
      • 2013-09-22
      • 1970-01-01
      • 2016-05-09
      相关资源
      最近更新 更多