• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/general/entity_query.php
  • Класс: CEntityQuery
  • Вызов: CEntityQuery::buildGroup
protected function buildGroup()
{
	$sql = array();

	if (!empty($this->group_chains) || !empty($this->having_chains)
		|| $this->checkChainsAggregation($this->select_chains)
		|| $this->checkChainsAggregation($this->order_chains)
	)
	{
		// add non-aggr fields to group
		foreach ($this->global_chains as $chain)
		{
			$alias = $chain->getAlias();

//				if (isset($this->select_chains[$alias]) || isset($this->select_expr_chains[$alias]) || isset($this->order_chains[$alias])
//					|| isset($this->having_chains[$alias]) || isset($this->having_expr_chains[$alias]))
			if (isset($this->select_chains[$alias]) || isset($this->order_chains[$alias]) || isset($this->having_chains[$alias]))
			{
				//if (!($chain->getLastElement()->getValue() instanceof CExpressionEntityField) && !$chain->hasAggregation())
				if (!$chain->hasAggregation())
				{
					// skip expressions (need only buildFrom from it) and buildFrom from aggregations
					$this->registerChain('group', $chain);
				}
			}
		}
	}

	foreach ($this->group_chains as $chain)
	{
		$sql[] = $chain->getSqlDefinition();
	}

	return join(', ', $sql);
}