そのため、組織内のアクティブなコンペティションを取得し、コンペティションをリードしているユーザーを取得しようとする次のクエリがあります。
現在、クエリはアクティブな競技会と各ユーザーの totalPoints を正しく取得しています。すべてのユーザーを取得するようになりました。最上位のユーザーのみを取得したいので、解決策は GROUP BY クエリ、ある種の LIMIT にあると想定していますか?
この画像では、私が得ている結果を見ることができます。ご覧のとおり、各コンペティションのすべてのユーザーを取得しています。ここでは、各コンペティションのトップ ユーザーのみが必要です。
http://i.imgur.com/5OXen4e.png
これをどのように解決できるかについてのアイデアはありますか?
SELECT c.competitionId, c.name, c.start_date, c.end_date, a.userid, u.name, u.profilePic ,
SUM(activity_weight) AS totalPoints
FROM activity_entries a INNER JOIN users1 u ON u.id = a.userid INNER JOIN competitions c ON c.competitionId = a.competitionId
WHERE c.organisationId = 1 AND c.start_date < now() AND c.end_date > now()
GROUP BY a.userid, c.competitionId ORDER BY c.id DESC