function sum() 2 fields with same id

问题描述 投票:0回答:2

我正在尝试获取特定字段的总和。当我尝试将这些值放在一起时,我得到的 SUM 是错误的。 我有这个:

  • reference: id_skill, user, level_paid

更具体的表格参考为:

id_skill 用户 level_paid
100 红色 1
100 红色 1
200 红色 2
200 红色 1

我想要的查询结果是,

id_skill 用户 level_paid
100 红色 2
200 红色 3
SELECT   
  SUM(level_paid) AS total,
FROM reference
WHERE user = 'Red'
GROUP BY 
  id_skill

我想要实现的是,如果“id_skill”的记录大于 1,则获取字段“level_paid”的总和。

php mysql sum inner-join
2个回答
0
投票

您可以通过以下查询获得结果。

HAVING
子句将确保您仅根据
GROUP BY
条件对超过 1 条记录的值求和,例如至少有两个
id_skill
具有相同的值。

SELECT
  id_skill,   
  user,
  SUM(level_paid) AS level_paid
FROM reference
WHERE user = 'Red'
GROUP BY 
  id_skill, user
HAVING COUNT(*) > 1

0
投票

我觉得

SELECT SUM(level_paid) AS total,

问题是如果你想打印 id_skill ,你也需要将查询更新为 users

SELECT SUM(level_paid) AS total, id_skill ,user FROM reference WHERE user = 'Red' GROUP BY id_skill

我还注意到您的查询中有一个额外的逗号,之前 from also remove that extra comma

© www.soinside.com 2019 - 2024. All rights reserved.