2016-12-01 6 views
1

Я хочу получить среднее значение столбца в dql, но мне не повезло.Как выбрать AVG в 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 | 
+--------+ 

My SQL является:

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

Может кто-нибудь мне помочь ?? Благодаря

ответ

0

Я получил мой ответ здесь:

$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(); 

Надеется, что это будет полезно для кого-то.