2016-03-08 5 views
0

Я пытаюсь запустить запрос в propel, который выполняет агрегатную функцию (SUM).Propel, выбирая только один столбец

Мой код

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

Проблема

Это теоретически должно вернуть сумму каждой группы элементов, но проблема заключается в движение пытается извлечь все столбцы, а также добавляет кучу другие столбцы в подразделение group by. Это приводит к непредвиденной категоризации, и поэтому сумма неверна.

Есть ли какой-либо способ сделать выборки только для столбца? Я запускаю функцию агрегации так, чтобы работа по команде выполнялась?

ответ

0

Вы должны добавить оператор выбора для столбца и внешнего ключа:

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