首页 > 解决方案 > Yii2,从时间戳中获取平均值

问题描述

我有一个带有订单的基本表,其中有一个名为 created_at 的字段,它采用时间戳格式,我想获得每天创建多少订单的平均值。

找到了另一个类似的问题,类似于我在下面发布的问题,希望每个人都能理解我想要做什么。

//not working
$q = new \yii\db\Query();
$q->from('shopping_cart');
$total = $q->average('DATEDIFF(`created_at`, CURRENT_DATE())'); 

标签: phpsqlyii2

解决方案


我相信它比 Yii2 更多的是与 SQL 相关的问题。您需要的(如果我理解正确的话)是:

  1. 计算从开始到今天的天数
  2. 计算所有行
  3. 除以这些数字以获得平均值。

我已经尝试过了,它工作正常

SELECT 
count(*) / (select round((unix_timestamp() - (select min(created_at) from table)) / 86400))
from table;

回到 Yii2:我相信你必须手动构建这个查询

\Yii::$app->db->createCommand()

推荐阅读