connection->getQueryBuilder(); $result = $qb->select($qb->func()->count('*', 'nb'), 'class') ->from('jobs') ->where($qb->expr()->gt('reserved_at', $qb->createNamedParameter(0))) ->groupBy('class') ->executeQuery(); // If no result, return a metric with count '0' if ($result->rowCount() === 0) { yield new Metric(0); return; } foreach ($result->iterateAssociative() as $row) { yield new Metric($row['nb'], ['class' => $row['class']]); } } }