所以我有以下查询,它获取组织内的活跃竞赛,并尝试获取领导竞赛的用户。
目前,查询正确地获取了活跃的比赛,以及每个用户的总积分。它现在抓取所有用户,我只希望它抓取顶级用户,所以我假设解决方案在于 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