2016-06-14 4 views
0

Я использую symfony 1.4, и я хочу сгруппировать некоторые данные, заказать их по сгруппированным столбцам и выбрать тот, у кого больше всего записей. Мой код выглядит следующим образом:Symfony 1.4 Criteria addGroupByColumn затем заказывайте больше

$c = new Criteria(); 
$c->addGroupByColumn(MetricPeer::POST_TYPE_ID); 
$c->addDescendingOrderByColumn(MetricPeer::POST_TYPE_ID);  
$posts = MetricPeer::doSelectOne($c); 

Я знаю, что линия "$ c-> addDescendingOrderByColumn (MetricPeer :: POST_TYPE_ID);" он упорядочивает данные только по номерам, и это неверно.

ответ

0
public static function topPosts($limit,$source_id,$interval1,$interval2,$con = null) { 
    if($con === null) $con = Propel::getConnection(self::DATABASE_NAME); 
    $sql = "SELECT *, COUNT(post_id) AS value_occurrence FROM metric WHERE source_id LIKE ".$source_id." AND visit_out BETWEEN '".$interval1."' AND '".$interval2."' GROUP BY post_id ORDER BY value_occurrence DESC LIMIT ".$limit.""; 
    $stmt = $con->prepare($sql); 
    $stmt->execute();  
    $topreads = MetricPeer::populateObjects($stmt); 
    return $topreads; 
} 

Это мое скромное решение на данный момент, я подумал, что это может быть полезно и для других. Спасибо.

 Смежные вопросы

  • Нет связанных вопросов^_^