Чтобы выбрать последний результат из вашей группы (доменов), вы можете переписать свой запрос, как показано ниже, и было бы проще перевести этот запрос в DQL и построитель запросов
SQL
SELECT
a.*
FROM
domain_check_result a
LEFT JOIN domain_check_result b
ON a.domain_id = b.domain_id
AND a.checkDate < b.checkDate
WHERE b.checkDate IS NULL
ORDER BY a.checkDate DESC
DQL
SELECT a
FROM AppBundle\Entity\DomainCheckResult a
LEFT JOIN AppBundle\Entity\DomainCheckResult b
WITH a.domain = b.domain
AND a.checkDate < b.checkDate
WHERE b.checkDate IS NULL
ORDER BY a.checkDate DESC
И в запросе вы можете перевести свой DQL как
$repo = $DM->getRepository( 'AppBundle\Entity\DomainCheckResult' );
$results = $repo->createQueryBuilder( 'a' )
->select( 'a' )
->leftJoin(
'AppBundle\Entity\DomainCheckResult',
'b',
'WITH',
'a.domain = b.domain AND a.checkDate < b.checkDate'
)
->where( 'b.checkDate IS NULL' )
->orderBy( 'a.checkDate','DESC' )
->getQuery()
->getResult();
Ссылка: Doctrine Язык запросов получить максимальную / последнюю строку для группы