我正在尝试根据用户输入按天、月或年对查询的响应进行分组。
为此,我从log_time
列中提取日、月或年AS when
,然后尝试这样做,GROUP BY when
但 CakePHP 说:
SQLSTATE[42601]: Syntax error: 7 ERROR: syntax error at or near "when" LINE 1: ...2-31' GROUP BY "Passenger"."route_id", "Route"."name", when ^
这是我的函数调用示例,其中分组为“月”。
$fields = array(
"CONCAT(DATE_PART('year', \"Passenger\".\"log_time\"), '-', DATE_PART('month', \"Passenger\".\"log_time\")) AS when",
"Passenger.route_id",
"Route.name",
"SUM(Passenger.embarked) AS embarked"
);
$conditions = array(
"Passenger.log_time >=" => $start,
"Passenger.log_time <=" => $end
);
$group = array("Passenger.route_id", "Route.name", "\"when\"");
return $this->find('all', array('fields' => $fields, 'conditions' => $conditions, 'group' => $group));
这是在 Cake 2.3.5 上使用 Postgres。有没有其他人知道如何做到这一点?