繁体   English   中英

如何在同一个查询中使用SUM结果?

[英]How to use a SUM result in the same query?

我有一个以下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计算他的能量的SUM,然后从结果查询中获取他的索引。 是否可以通过一个查询执行此类操作。 或者我是否必须获得所有用户,然后使用数组来获得正确的位置?

您可能想要查看子查询。

https://dev.mysql.com/tech-resources/articles/subqueries_part_1.html

更新:

例如,SUM结果进入查询。

SELECT *
FROM `table`
WHERE
field = ( SELECT SUM(otherField) as energy
          FROM `table2`
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM