sqlserver有没有取一个字段的中位数的函数?
------解决方案--------------------
- SQL code
CREATE TABLE tsgss(id varchar(20),a int)INSERT tsgss SELECT '0001',1UNION ALL SELECT '0002',3UNION ALL SELECT '0003',66UNION ALL SELECT '0004',34UNION ALL SELECT '0005',6UNION ALL SELECT '0006',45UNION ALL SELECT '0007',23UNION ALL SELECT '0008',33UNION ALL SELECT '0009',7UNION ALL SELECT '0010',9goCREATE FUNCTION getMid()RETURNS floatASBEGIN DECLARE @s table(id int identity(1,1),a int) DECLARE @g float INSERT @s SELECT a FROM tsgss IF @@ROWCOUNT %2<>0 SELECT @g=a FROM @s WHERE id=(SELECT min(id)+max(id) FROM @s)/2 ELSE SELECT @g=avg(a*1.0) FROM @s WHERE id in(SELECT max(id)/2 FROM @s UNION ALL SELECT max(id)/2+1 FROM @s) RETURN @gENDSELECT dbo.getMid()