0

我正在尝试在运行聚合函数(SUM)的推进中运行查询。

我的代码

$itemQuery = SomeEntity::Create();
$itemQuery->withColumn('SUM(SomeColumn)', someColumn)
      ->groupBy(SomeForeignKey);

问题

理论上它应该返回每组项目的总和,但问题是 propel 尝试获取所有列,并且还将一堆其他列附加到 group by 子句。这会导致意外的分类,因此总和不正确。

有没有办法让 propel 只获取我正在运行聚合函数的列,以便 group by 语句也能正常工作?

4

1 回答 1

0

您需要为列和外键添加选择语句:

$itemQuery = SomeEntity::Create();
$itemQuery->select(array(SomeColumn, SomeForeignKey));
$itemQuery->withColumn('SUM(SomeColumn)', someColumn);
$itemQuery->groupBy(SomeForeignKey);
于 2016-03-09T18:43:36.333 回答