我有一张桌子
EmpName | Bonus
Rohit | 20
Steve | 35
Rohit | 9
Johnson | 15
现在我想要奖金<30的不同员工的用户名和奖金总和。答案应该是;
EmpName | Sum(Bonus)
Rohit | 29
Johnson | 15
得到这个输出的查询是什么?
我有一张桌子
EmpName | Bonus
Rohit | 20
Steve | 35
Rohit | 9
Johnson | 15
现在我想要奖金<30的不同员工的用户名和奖金总和。答案应该是;
EmpName | Sum(Bonus)
Rohit | 29
Johnson | 15
得到这个输出的查询是什么?
您可以使用聚合函数sum()
来获取每个人的总奖金empname
,然后使用HAVING
子句返回empname
总奖金小于 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;
SELECT EmpName,
SUM(Bonus) AS SumBonus
FROM dbo.Table1
WHERE Bonus < 30
GROUP BY EmpName