1

我已经构建了一个以数组作为数据源的 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'

笔记:

我试过使用双引号 "" 但仍然不起作用

此外,数据数组中的日期列是在带有 new Date() 的for 循环中使用 JavaScript 日期方法构造的

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

有谁知道如何构建我的查询,以便我的输出就像

城市,旅行日期,AvgQ1,AvgQ2,AvgQ3,AvgQ4

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

4

1 回答 1

1

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

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

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

GROUP BY YEAR([0]), MONTH([1])
于 2015-07-31T14:19:39.807 回答