我有一张表
EmpName | Bonus
Rohit | 20
Steve | 35
Rohit | 9
Johnson | 15
现在我想要用户名和奖金<30的不同员工的总奖金。 答案应该是;
EmpName | Sum(Bonus)
Rohit | 29
Johnson | 15
获取此输出的查询是什么?
答案 0 :(得分:2)
您可以使用汇总函数sum()
获取每个empname
的总奖金,然后使用HAVING
子句返回总奖金为empname
的{{1}}少于30:
select empname, sum(bonus) TotalBonus
from yt
group by empname
having sum(bonus) < 30;
或者,如果您只想将bonus
小于30的行合计,则可以使用:
select empname, sum(bonus) TotalBonus
from yt
where bonus < 30
group by empname;
答案 1 :(得分:1)
SELECT EmpName,
SUM(Bonus) AS SumBonus
FROM dbo.Table1
WHERE Bonus < 30
GROUP BY EmpName