2014-03-28 37 views
3

我有以下SQL语句:如何在同一个查询中使用SUM结果?

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来计算他能量的SUM,然后从结果查询中获得他的索引。是否有可能通过一个查询来做这样的事情。或者我必须得到所有用户,然后使用数组来获得正确的位置?

回答

相关问题