【问题标题】:How to select AVG in dql?如何在dql中选择AVG?
【发布时间】:2016-12-01 05:09:55
【问题描述】:

我想在 dql 中获得一列的平均值,但我没有运气。

    $qb = $this->em->getRepository($this->target)->createQueryBuilder('m');         
    $qb
        ->select($qb->expr()->avg('m.total_online as ACU'))
        ->where('m.server = :server')
        ->andWhere('m.time LIKE :time')
        ->setParameter('server', $server)
        ->setParameter('time',$date.'%');           
        $rs= $qb->getQuery()
        ->getResult();

但它不会像我预期的那样给我结果:

+--------+
| ACU    |
+--------+
| 0.1429 |
+--------+

我的sql是:

SELECT AVG(Total_Online) as ACU FROM `monitor` WHERE time like '2016-12-01%' AND server='$x'

有人可以帮我吗? 谢谢

【问题讨论】:

    标签: php mysql symfony doctrine-orm dql


    【解决方案1】:

    我在这里得到了答案:

    $qb = $this->em->createQueryBuilder();
    $rs = $qb
            ->select($qb->expr()->avg('m.total_online'))
            ->from($this->target,'m')
            ->where('m.server = :server')
            ->andWhere('m.time LIKE :time')
            ->setParameter('server', $server)
            ->setParameter('time',$date.'%')            
            ->getQuery()
            ->getResult();
    

    希望对某人有所帮助。

    【讨论】:

      猜你喜欢
      • 2020-02-18
      • 2015-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-02
      相关资源
      最近更新 更多