PHP中时间戳的平均每日金额

时间:2014-09-04 16:20:07

标签: php mysql date timestamp

我有一个包含2个值的mysql数据库:时间戳和数量 我怎样才能计算每个星期三的平均值?

我首先要看看有多少独特的星期三被提及,然后看看每个特定星期三的总价值是多少(一天可以有多个条目,但是一天的时间不相关) 然后,我必须将所有这些值加起来,并将它们除以星期三的数量。

我知道这是奇怪的具体,这就是为什么我可能没有找到任何关于它的原因。我将如何在PHP中执行此操作?

2 个答案:

答案 0 :(得分:0)

假设您有一个包含以下列的表:id timestamp amount

您必须从表中选择所有行并将它们放在数组中。 一旦完成,就通过数组

<?php
$total = 0;
$bingo = 0;
foreach($a as $i)
{
    if(date( "l" ,$i["timestamp"]) == "Wednesday")
    {
        $bingo++;
        $total += $i["amount"];
    }
}
$avg = $total/$bingo;

?>

答案 1 :(得分:0)

您可以使用此类查询来获取每个工作日的每日平均值。

SELECT DAYOFWEEK(date_only), AVG(total) FROM (
    /*The subquery will return total amounts for each distinct day
      regardless of how many records there are for each day. */ 
    SELECT
        DATE(your_table.timestamp_column) as date_only, 
        SUM(your_table.amount_column) as total 
    FROM your_table 
    GROUP BY DATE(your_table.timestamp_column)) as daily_totals
GROUP BY DAYOFWEEK(date_only);

DATE()将仅采用时间戳中的日期部分。按此值进行分组并使用SUM()汇总功能可以获得每天的总计。

DAYOFWEEK()返回表示星期几的日期的数值(1 =星期日等)。按此值进行分组并使用AVG()汇总功能可以获得每个工作日的平均总数。

如何在PHP中处理结果取决于您的具体需求。