2016-12-01 41 views
1

我想在dql中獲得一列的平均值,但我沒有運氣。如何在dql中選擇AVG?

$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' 

能有人幫我嗎? 感謝

回答

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

希望這將是對別人有幫助的。