ユニーク ユーザーの MAX スコア オブジェクトを選択しようとしています。
したがって、ユーザーは明確である必要があり、ユーザー (注文) の最大スコアを受け取る必要があり、この最大スコアの dataAdded などの他のオブジェクト値を取得する必要があります。
$query = $this->createQueryBuilder('s');
$query->select('DISTINCT s.user, s');
$query->where('s.challenge = :challenge')->setParameter('challenge', $challenge);
$query->andWhere('s.date_added BETWEEN :monday AND :sunday')
->setParameter('monday', $startDate->format('Y-m-d'))
->setParameter('sunday', $endDate->format('Y-m-d'));
$query->orderBy('s.score', 'DESC');
//$query->groupBy('s.user');
$query->setMaxResults($limit);
$results = $query->getQuery();
どんなに頑張ってもうまくいかない。MAX(s.score) でグループ化しようとしましたが、これはランダムなオブジェクトを同じオブジェクトではなく最大スコアに関連付けます..
誰にもこれに対する解決策がありますか?明確に機能していないようです...
生成されたクエリ:
SELECT DISTINCT s.user, s FROM Digital\ApplicationBundle\Entity\ChallengeScore s WHERE s.challenge = :challenge AND (s.date_added BETWEEN :monday AND :sunday) ORDER BY s.score DESC
しかし、エラー;(
[Semantical Error] line 0, col 18 near 'user, s FROM': Error: Invalid PathExpression. Must be a StateFieldPathExpression
ユーザーが関係であることは言及する価値があります。他のファイルでこれを試すと、これは正常に機能します...