【发布时间】:2014-07-31 07:41:41
【问题描述】:
(为了便于理解,我认为最简单的方法是使用累积奖金翻转) 我有这个数据: http://sqlfiddle.com/#!2/e5ea89/1/0
我通过检查结果中的前一个当前行来获得当前/最新的累积奖金翻转,如此处所示,然后增加 $rollovercount:
$rollovercount = 0;
$previous = '';
$stmt = DB::Prepare("
SELECT jvt.jackpotvalue, jt.dateofjackpot
FROM JackpotTable jt
LEFT JOIN JackpotValueTable jvt on jvt.jackpotid = jt.jackpotid
ORDER BY jt.dateofjackpot desc
");
$stmt->execute();
$result = $stmt->get_result();
if ($result)
{
while ($row = $result->fetch_object())
{
$current = $row->jackpot;
if ($current < $previous)
{
$rollovercount ++;
}
$previous = $current;
}
}
return $rollovercount ;
这很好用,但现在我想获得平均翻转次数。 如果您看到示例数据,最新的翻转计数为 3(累积奖金值从上一行下降)。 在此之前,它是 5 次翻转。 在此之前,它是 2 次翻转。 在此之前,它是 1 次翻转。 在此之前是 2 次翻转。
所以 3+5+2+1+2=13 和 13/5=2.6 所以 2.6 是平均翻转次数。
如果有可能以某种方式将翻转存储在一个数组中,例如 $rollovercount = array(3, 5, 2, 1, 2);然后可能使用 array_sum($rollovercount) 并将其除以 count($rollovercount)
【问题讨论】:
-
发生翻转时,将当前翻转计数添加到数组中,并将
$rollovercount重置为0。 -
是的,但我将如何在代码中执行此操作 - 将当前翻转计数放入数组中,然后继续检查下一个翻转计数?
标签: php mysql average increment