я получил эти данные в моей БД:Учение - Symfony 3 QueryBuilder COUNT() неправильно
Я стараюсь, чтобы получить foreign_ids с последним значением created_at в виде guest_identifier.
В этом случае я бы ожидать:
foreign_id: 5 for guest_identifier: 12345
foreign_id: 5 for guest_identifier: 2345
foreign_id: 4 for guest_identifier: 345
Теперь я хочу, чтобы подсчитать этот результат и вернуть что-то вроде:
[
{
"foreign_id": 5,
"occurrence": 2
},
{
"foreign_id": 4,
"occurrence": 1
}
]
Это, как я стараюсь, чтобы получить этот результат:
$qb = $this->createQueryBuilder('statistic')
->select('statistic.foreignId, COUNT(statistic.foreignId) as occurrence')
->where('statistic.guideId = :guideId')
->andWhere('statistic.type = :type')
->andWhere('statistic.createdAt BETWEEN :startDate AND :endDate')
->groupBy('statistic.guestIdentifier')
->setParameters(array(
'guideId' => $guideId,
'type' => 'answer_clicked',
'startDate' => $startDate,
'endDate' => $endDate
))
->getQuery();
$stats = $qb->getResult();
return $stats;
Проблема в том, что мой результат выглядит следующим образом:
[
{
"foreignId": 5,
"occurrence": "3"
},
{
"foreignId": 5,
"occurrence": "3"
},
{
"foreignId": 4,
"occurrence": "2"
}
]
Я не могу найти, почему появление является 3 вместо 2 для foreign_id: 5 и почему появление 2 вместо 1 для foreign_id: 3. Кроме того, я не»знаю, как группировать результаты в другой раз ,