我有以下SQL语句:
SELECT `activities`.`user_id`,
`users`.`firstname`,
`users`.`lastname`,
Sum(activities.energy) AS energy,
Sum(activities.distance) AS distance
FROM `activities`
INNER JOIN `users`
ON `activities`.`user_id` = `users`.`id`
WHERE `activities`.`activity_type_id` = ?
GROUP BY `activities`.`user_id`
ORDER BY `energy` DESC
这使我从他们执行的活动(按能量排序)中获得了一系列用户,并计算出距离和能量之和。我用它来显示排名。
我想做的是通过活动类型和/或city_id获取用户位置(排名中的排名)。
为此,我必须首先通过activity_type_id计算他的能量的总和,然后从结果查询中获取他的索引。是否可以通过一个查询执行类似的操作。还是我必须先吸引所有用户,然后使用数组才能获得正确的位置?
您可能想看一下子查询。
https://dev.mysql.com/tech-resources/articles/subqueries_part_1.html
更新:
例如,将SUM结果转换为查询。
SELECT *
FROM `table`
WHERE
field = ( SELECT SUM(otherField) as energy
FROM `table2`
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句