我希望我能说得恰到好处 - 我不确定我是否正确接近这一点。
我正在运行MySQLi
查询,我需要根据一列中值的总和(multiplicaiton)对结果进行排序。这些值是小数点后两位,并且赔率为'体育成绩。因为我不能简单地将每一行的值作为结果加总(例如1,1,1加3但乘以1)并不能使我正确地排除'排序
目前我只是在查询中执行总和
SUM(Fav_odds) AS Total
但我很难理解我如何得到Total
'成为' Fav_odds
*行数的结果'在我的查询中。
Fav_odds | Vendor
------------------
1.2 | Name
2.1 | Name
3.2 | Name
因此对于供应商称为' Name'我想为Fav_odds列中的项目提供倍数值(例如1.2 * 2.1 * 3.2 = 8.064)
答案 0 :(得分:2)
使用变量
set @miller := 1;
select orderingTotal from
(select @miller:=@miller*Fav_odds as orderingTotal
from mytable) mytotaltable
order by orderingTotal;
或者可能只是说
sum(Fav_odds) * count(Fav_odds)
如果你在最后说的是正确的方式(" fav_total *行数")。
答案 1 :(得分:2)
select round(EXP(SUM(LOG(fav_odds))),3) as fav_odds from table;