if ($prices) {
    /* all user id */
$p_sql = "SELECT user_id, sum(origin) AS count FROM `order` WHERE state = 'pay' GROUP BY user_id HAVING count > {$prices}";
$p_res = DB::GetQueryResult($p_sql, false);
$p_ids = Utility::GetColumn($p_res, 'user_id');
$p_ids = array_unique($p_ids);
$pids = implode(',', $p_ids);
$condition[] = "(id in($pids))";
}这里统计出来的数据是无序排序的。我想根据金额origin字段从高到底排序。

解决方案 »

  1.   

    加上 order by 子句另外请先理清你的思路
    你的结果中并未出现 origin 只出现了 sum(origin) 即 count。那么当按 origin 进排序时,结果可能更加费解
    比如
    有a组 10条记录的 origin 都为 1,那么 sum(origin) 就为 10
    有b组 1 条记录的 origin 为 5,那么 sum(origin) 就为 5
    如果按 origin 降序,那么 5 就会排在 10 之前了