我需要对列进行求和并将它们从最高到最低排序。
这就是我尝试过的!
$sth = $db->prepare("SELECT sum(A), sum(S), sum(D), sum(F) FROM XXX order by A, S, D, F DESC");
$sth->execute();
$result = $sth->fetch(PDO::FETCH_ASSOC);
这是输出的样子:
Array ( [sum(A)] => 38 [sum(S)] => 194 [sum(D)] => 40 [sum(F)] => 164 )
答案 0 :(得分:0)
为什么不在结果被返回时在php中使用rsort()
?
sort()
将从最低到最高,rsort()
将从最高到最低
rsort($result);
print_r($result);
要保留数组的关联功能,请使用asort()
(低 - >高)或arsort()
;
(高>低)
arsort($result);
print_r($result);
答案 1 :(得分:0)
SELECT sum(A), sum(S), sum(D), sum(F) FROM XXX order by S DESC, A DESC, D DESC, F DESC
基本上,您必须将DESC
添加到要按降序排序的每列中。
默认为ASCending订单。
答案 2 :(得分:0)
复制并粘贴此代码,您可以搞清楚:
$sth = array(
'sumA' => 38,
'sumB' => 194,
'sumC' => 40,
'sumD' => 164
);
arsort($sth);
foreach($sth as $element => $num){
echo $element . $num . '</br>';
}