2014-09-04 60 views
0

我有一个MySQL数据库与2个值:时间戳和金额 我将如何去计算平均值,比如说每个星期三?平均每日金额从时间戳在php

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

我知道这是奇怪的具体,这就是为什么我可能没有发现任何关于它。我将如何去做这个在PHP中?

+1

我认为你应该用MySQL而不是PHP来做到这一点。 – 2014-09-04 16:44:45

回答

0

你可以使用这样的查询来获得日平均每个工作日。

​​

DATE()将只需要日期部分从时间戳。根据此值进行分组并使用SUM()聚合函数可获得每天的总计。

DAYOFWEEK()从表示星期几的日期(1 =星期日等)返回数值。按这个值分组并使用AVG()聚合函数可以得到每个工作日的平均总数。

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

+0

感谢您的答案。由于我比PHP更深入PHP,所以对我来说更多的是abracadabra。这会给我一个星期中每一天的所有平均数列? – Chris307 2014-09-04 17:26:59

+0

是的,没错。对不起,abracadabra。我可以编辑答案来添加一些解释。 – 2014-09-04 17:28:27

+0

我总是渴望学习:) – Chris307 2014-09-04 17:35:11

0

可以说你有以下的表:ID时间戳量

你必须选择所有从表中的行和摆阵。 一旦完成走线槽阵列

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

?> 
+0

嘿,谢谢你的快速反应,是的,我的桌子上有id分配给它。无论如何,日期(“l”部分是以文本格式输出星期几吗?因为那就是我在这里理解的范围。 – Chris307 2014-09-04 17:12:31

+0

另外,我刚才想到的,比如说在同一星期三有两个条目,那么它会添加到$宾果游戏两次,我将如何改变这样做呢? – Chris307 2014-09-04 17:16:39

+0

日期(“l”,$时间戳) 这将返回文本格式的一天的名称 – pesutsoos 2014-09-04 17:28:53