MYSQL在前一行

时间:2015-10-06 13:51:27

标签: mysql

我希望我能说得恰到好处 - 我不确定我是否正确接近这一点。

我正在运行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)

2 个答案:

答案 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;