我使用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);”它只是按数字排序数据而且不正确。
答案 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;
}
这是我现在的简单解决方案,我认为它也可能对其他人有用。 谢谢。