Chciałbym wybrać wszystko + wartość MAX i otrzymywać tylko wiersze o wartościach maksymalnych.Doctrine query building select MAX
$query = $this->createQueryBuilder('s');
$query->where('s.challenge = :challenge')->setParameter('challenge', $challenge);
$query->groupBy('s.score');
$query->getQuery();
return $query->select('s.*, MAX(s.score) AS max_score')->getQuery()->getResult();
Jak mogę to osiągnąć w doktrynie? Otrzymuję komunikat o błędzie, że nie znaleziono właściwości *. Starałem się wybierać je wszystkie jeden po drugim, ale bez powodzenia.
celem jest osiągnięcie coś takiego
SELECT user, challenge, whateverelse, MAX(score) FROM users_scores_table GROUP BY user_id
proszę o pomoc;)
DQL =/= SQL, nie wiem, co chce zrobić tutaj. select ('s, ...) powinno wystarczyć. – mpm
To wybierze mi tylko max_score, a nie mój cały podmiot .. Próbuję uzyskać wszystkie unikalne najwyższe wyniki dla użytkowników. – rat4m3n
Po prostu wybierz opcję ('s, MAX (s.score)'), tak jak sugerował @mpm. –