Symfony 1.4 Criteria addGroupByColumn然后按大多数顺序排序

时间:2016-06-14 17:37:06

标签: symfony sql-order-by symfony-1.4

我使用symfony 1.4并且我想分组一些数据,按分组列排序,然后选择记录最多的数据。 我的代码如下所示:

$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);”它只是按数字排序数据而且不正确。

1 个答案:

答案 0 :(得分: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;
}

这是我现在的简单解决方案,我认为它也可能对其他人有用。 谢谢。