我有一个包含2个值的mysql数据库:时间戳和数量 我怎样才能计算每个星期三的平均值?
我首先要看看有多少独特的星期三被提及,然后看看每个特定星期三的总价值是多少(一天可以有多个条目,但是一天的时间不相关) 然后,我必须将所有这些值加起来,并将它们除以星期三的数量。
我知道这是奇怪的具体,这就是为什么我可能没有找到任何关于它的原因。我将如何在PHP中执行此操作?
答案 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中处理结果取决于您的具体需求。