我如何找到工资高于每个员工的平均工资

How can i find salary is more than the average salary of every staff

我想查看我的 table 中工资高于每位员工平均工资的行。下面的代码给我一个错误:

Operand data type varchar is invalid for avg operator.

SELECT StaffID, StaffName, LEFT(StaffGender, 1)  AS [Staff Gender], 
'Rp. ' + CAST ((StaffSalary)AS VARCHAR) [Staff Salary]
FROM MsStaff
WHERE StaffName Like '% %' AND StaffSalary > AVG(StaffSalary)

更新: 我已将 StaffSalary 列更改为 INT 数据类型,但我收到另一个错误:

Msg 147, Level 15, State 1, Line 48
An aggregate may not appear in the WHERE clause unless it is in a subquery
contained in a HAVING clause or a select list, and the column being aggregated is
an outer reference."

虽然好像有道理,但是不能这么用AVG()
使用sub-query求平均值:

SELECT ...
FROM MsStaff
WHERE StaffName Like '% %'
AND StaffSalary > (SELECT AVG(StaffSalary) FROM MsStaff)
select * from MsStaff where StaffSalary > (select avg(StaffSalary) from MsStaff)