Dreamfactory : 如何在查询中使用 MySQL 聚合函数

Dreamfactory : How to use MySQL aggregate functions in queries

使用 dreamfactory 版本 2,我无法像以前那样在过滤器或字段参数中使用聚合函数。

假设示例我如何使用 api

查询以下内容
SELECT HOUR(col2), MAX(col1)-MIN(col1)
FROM table_name
WHERE col3=CURDATE()
GROUP BY col3

我收到以下错误:

1)DateTime::__construct(): Failed to parse time string (CURDATE) at
  position 0    (C): The timezone could not be found in the database.
2)Invalid field requested: HOUR(col2)

有几点需要注意。 "SELECT"字段不能包含函数调用,但从2.0.2版本开始,DreamFactory支持virtual fields。创建 vcol2 为 "HOUR(col2)" 和 vcol1 为 "MAX(col1)-MIN(col1)" 然后在您的字段参数中使用它们。

至于过滤器错误,在下周(12/21)发布的 2.0.3 版本中修复了解析中的错误,但所有函数调用都必须用括号括起来,即 "col3 = (CURDATE())".

这是正确的 API 查询:

GET http://server/api/v2/service/_table/table_name?filter=col3%20%3D%20(CURDATE())&group=col3&fields=vcol2,vcol1