我有一张有多名员工薪水的表。 我需要使用派生数(mean和stddev)计算这些员工的得分,并将其作为新列包含在内。
我知道我可以在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,语法不正确。
答案 0 :(得分:0)
您遇到的问题是如何选择。
变量@Mean
已声明,如果最终选择如下所示,它将起作用:
SELECT *,
(([salary]-@Mean)/@StdDevn) as SomeOtherCol
FROM [live].[dbo].[salary]
SomeOtherCol
随后会显示为结果集的最后一列。