2013-02-09 1 views
1

Мне нужно найти общее количество логинов в день, но как бы я мог выбрать count() и group to day в DQL? Я использую Doctrine 2.3.Doctrine Query count() и groupBy() date

public function getLoginCount() 
{ 
    return $this->createQueryBuilder('i') 
      ->select('i') // and count(*) 
      ->groupBy('i.timestamp') // group by day 
      ->getQuery() 
      ->execute() 
     ; 
} 

мне нужно что-то вроде этого:

Date | count 
2013-01-01 | 6 
2013-01-02 | 7 
2013-01-03 | 3 

ответ

1

Немного поздно для OP, но, возможно, кто-то найдет его под рукой. Я был в состоянии добиться того, что с DQL запроса внизу:

$dql = ' 
     SELECT 
      SUBSTRING(i.timestamp, 1, 10) as date, 
      COUNT(i) as count 
     FROM Entity i 
     GROUP BY date 
    '; 
    $query = $entityManager->createQuery($dql); 
    return $query->getResult(); 

Я думаю, что похоже должно быть проделано с Doctrine построитель запросов.