我有一张表,上面有多个员工的工资。我需要使用派生数字(平均值和标准差)计算这些员工的分数,并将其作为新列包含在内。
我知道我可以在 select 语句中做到这一点,但是如果我想看看我是否可以使用变量。
这样可以动态地进行更改。我是 SQL 的新手,只是想在这里学习。
declare @Weight int,
@weight2 int,
@Mean int,
@StdDevn int,
@Variance int
set @Weight = 30
set @weight2 = (POWER(@weight,2)/100)
SELECT @Mean = AVG(salary) FROM [live].[dbo].[salary]
SELECT @StdDevn = STDEV(salary) FROM [live].[dbo].[salary]
SELECT @Variance = (POWER(@StdDevn,2)/100)
-- I should include some code here so that the above variable are passed to below query
SELECT * FROM [live].[dbo].[salary], (([salary]-@Mean)/@StdDevn)
错误:
必须声明变量@Mean,'-' 附近的语法不正确。
您遇到的问题是您尝试选择的方式。
该变量@Mean
已声明,如果最终选择如下所示,它将起作用:
SELECT *,
(([salary]-@Mean)/@StdDevn) as SomeOtherCol
FROM [live].[dbo].[salary]
然后SomeOtherCol
将显示为结果集的最后一列。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句