|
|
|
Grasshopper
      
Group: General Forum Members
Last Login: 2 days ago @ 10:25 AM
Points: 24,
Visits: 260
|
|
| Is there an equivalent of Excel's NORMDIST function in SQL Server 2005?
|
|
|
|
|
SSCrazy Eights
        
Group: General Forum Members
Last Login: Today @ 3:32 PM
Points: 8,980,
Visits: 8,540
|
|
|
|
|
|
Grasshopper
      
Group: General Forum Members
Last Login: 2 days ago @ 10:25 AM
Points: 24,
Visits: 260
|
|
If it helps anyone, this is how my function looks like. Thanks again to all who helped me.
CREATE FUNCTION [dbo].[udf_NORMDIST](@value FLOAT, @mean FLOAT, @sigma FLOAT, @cummulative BIT) RETURNS NUMERIC(28,8) AS /**************************************************************************************** NAME: udf_NORMDIST WRITTEN BY: Tim Pickering http://www.eggheadcafe.com/software/aspnet/31021839/normdistx-mean-standarddevtrue-in-sql-2005.aspx DATE: 2010/07/13 PURPOSE: Mimics Excel's Function NORMDIST
Usage: SELECT dbo.udf_NORMDIST(.48321740,0,1,0) OUTPUT: 0.35498205
REVISION HISTORY
Date Developer Details 2010/08/11 LC Posted Function
*****************************************************************************************/
BEGIN
DECLARE @x FLOAT DECLARE @z FLOAT DECLARE @t FLOAT DECLARE @ans FLOAT DECLARE @returnvalue FLOAT
SELECT @x = (@value-@mean)/@sigma
IF (@cummulative = 1) BEGIN
SELECT @z = abs(@x)/sqrt(2.0) SELECT @t = 1.0/(1.0+0.5*@z) SELECT @ans = @t*exp(-@z*@z-1.26551223+@t*(1.00002368+@t*(0.37409196+@t*(0.09678418+@t*(-0.18628806+@t*(0.27886807+@t*(-1.13520398+@t*(1.48851587+@t*(-0.82215223+@t*0.17087277)))))))))/2.0
IF (@x <= 0) SELECT @returnvalue = @ans ELSE SELECT @returnvalue = 1-@ans END ELSE BEGIN SELECT @returnvalue = exp(-@x*@x/2.0)/sqrt(2.0*3.14159265358979) END
RETURN CAST(@returnvalue AS NUMERIC(28,8))
END
|
|
|
|
|
Forum Newbie
      
Group: General Forum Members
Last Login: Wednesday, September 12, 2012 8:45 PM
Points: 1,
Visits: 4
|
|
Out of the box there is no equivalent in SQL Server (up to 2012) for NORMDIST.
NORMDIST computes the Normal Distribution PDF (Probability Density Function) when the cumulative parameter is false and the CDF (Cumulative Distribution Function) otherwise.
The PDF can be computed from the definition and is pretty straight forward, the CDF however has no close form and can only be approximated. I've developed a function for the PDF and a set of functions using different approximations for the CDF. You can read my analysis in: http://formaldev.blogspot.com.au/2012/09/T-SQL-NORMDIST-1.html and either copy paste the ones you want from the posts or get them from the project page for the blog posts at: https://tsqlnormdist.codeplex.com/
|
|
|
|