我正在尝试获取特定字段的总和。当我尝试将这些值放在一起时,我得到的 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”的总和。
您可以通过以下查询获得结果。
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
我觉得
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