我有一个数据库,用户可以在其中提交有关已执行多少步骤的信息,我正尝试将其拉成排行榜,但由于它是单独提交的,因此他们分开拉。

SELECT step_count.steps, step_count.email, logins.FirstName, logins.LastName
  FROM step_count, logins
  WHERE step_count.email=logins.email


这是查询,这是信息被提取的方式

steps | email                          | FirstName | LastName

5000  | [email protected]                   | One       | onetest
300   | [email protected]                   | Two       | twotest
200   | [email protected]                   | One       | onetest


有没有一种方法可以将两者结合在一起以获得步骤总数?

最佳答案

您可以将SUM聚合函数与GROUP BY语句一起使用:

SELECT SUM(step_count.steps),
       step_count.email,
       logins.FirstName,
       logins.LastName
FROM step_count, logins
WHERE step_count.email=logins.email
GROUP BY step_count.email, logins.FirstName, logins.LastName


这样,您可以按要聚合的字段分组,并为每个组求和一个数字字段(步)。

看一下:mysql aggregate functions

您还应该查看INNER JOIN语句以联接表,而不要使用WHERE子句。

10-05 18:40