2016-06-14 4 views
0

symfony 1.4를 사용하고 일부 데이터를 그룹화하고 그룹화 된 열로 정렬 한 다음 가장 많은 레코드를 가진 그룹을 선택합니다. 내 코드는 다음과 같습니다Symfony 1.4 Criteria addGroupByColumn then order by most

$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; 
} 

이것은 현재로서는 내 겸허 한 해결책이며 다른 사람들에게도 유용 할 것으로 생각했습니다. 감사합니다.