0

我在特定时间段内提取了几个状态,我想提取另一个统计数据,即该时间段内的“每天平均销售额”。我不确定如何在特定时间段内计算每日平均值,有人可以提供一些建议吗?

$whereSql = 'WHERE created >= '.$endTimestamp.' AND
            created <= '.$startTimestamp;

    $tru->query->run(array(
        'name' => 'get-figures',
        'sql' => 'SELECT
                SUM(price) AS total_sales,
                COUNT(id) AS total_orders,
                AVG(total) AS order_total_average
                (SELECT
                        SUM(quantity)
                    FROM `order_product`
                    INNER JOIN `order` ON (
                        `order`.id = order_product.order_id AND
                        `order`.created >= '.$endTimestamp.' AND
                        `order`.created <= '.$startTimestamp.' AND
                        `order`.type_id = '.$type->getId().'
                    )
                ) as total_units
            FROM `order`
            '.$whereSql.' AND type_id = '.$type->getId().'',
        'connection' => 'store'
    ));
4

2 回答 2

0

您需要按日期范围内的 to_char 进行分组(可能是“ddd”),并且需要一个限制正确日期范围的 where 子句组件

于 2010-06-21T00:16:40.113 回答
0

如果我正确理解您想要什么,您可以将总销售额除以所选时间段内的天数。将此列添加到外部选择语句: SUM(price)/DATEDIFF($endTimestamp,$startTimestamp)

还要确保您使用 mysql_real_escape_string 转义用户提供的值,否则您将有 SQL 注入漏洞。

于 2010-06-21T00:51:13.510 回答