SQl自定义函数 平均值

来源:百度知道 编辑:UC知道 时间:2024/05/13 07:18:46
现在又有一个表,要求出每个值与其所在列平均值的乘积(X * X平均),应该怎么求?用SQL自定义函数,要是能用java连接数据库后,用java程序做,也可以?大侠帮帮忙!
主要是想学习下自定义函数中参数的应用!

假如你的这个表叫table1,字段有:field1,field2,fied3

select a.field1*b.field1 as x_field1,a.field2*b.field2 as x_field2,a.field3*b.field3 as x_field3 from table1 a,
(select avg(field1) as field1,avg(field2) as field2,avg(field3) as field3 from table1) b
这样就可以直接求出你要的结果了,如果你非得要用函数来再说,那样还麻烦
-----------------------------------------
用自定义函数来实现:表还是上面举例子的表
CREATE FUNCTION F_GetAvg (@p_fieldstr varchar(254))
RETURNS float AS
begin
declare @rtn float;
select @rtn=(case when @p_fieldstr='field1' then avg([field1])
when @p_fieldstr='field2' then avg([field2])
when @p_fieldstr='field3' then avg([field3])
else 0 end) from table1
return @rtn
end

使用:select field1*dbo.F_GetAvg('field1'),field2*dbo.F_GetAvg('field2'),field3*dbo.F_GetAvg('field3') from table1

SELECT
列名
,数值
,B.X_AVG 所在列平均值