Вам следует избегать использования Criteria
, вместо этого используйте API ModelCriteria
(документация доступна по адресу: http://www.propelorm.org/reference/model-criteria.html)
Следующий запрос:
<?php
$criteria = new Criteria();
$criteria->clearSelectColumns();
$criteria->addSelectColumn(TableName::COLUMN1)
->addSelectColumn(TableName::COLUMN2)
->addAsColumn('alias1', 'DATE('.TableName::INIT_TIME.')')
->addAsColumn('alias2', 'COUNT('.TableName::DOWNLOAD_START_TIME.')')
->addGroupByColumn('DATE('.TableName::INIT_TIME.')')
->addGroupByColumn(TableName::DOWNLOAD_START_TIME);
$logs = TableName::doSelect($criteria);
Может быть переписанкак показано ниже:
$query = TableNameQuery::create()
->select(array('Column1', 'Column2'))
->withColumn('DATE(InitTime)', 'alias1')
->withColumn('COUNT(DownloadStartTime)', 'alias2')
->groupBy('alias1')
->groupByDownloadStartTime()
;
$logs = $query->find();
Обратите внимание, что вы не будете выбирать оба столбца alias1
и alias2
, поскольку не добавили их в выбранные столбцы в своем коде.сделать это, добавив два псевдонима к предложению select()
:
->select(array('Column1', 'Column2', 'alias1', 'alias2'))