[GENERAL] trying to program in PostgreSQL C a statistics function - Mailing list pgsql-general

From Andre Mikulec
Subject [GENERAL] trying to program in PostgreSQL C a statistics function
Date
Msg-id DM5PR15MB167617190CE5ADBE36805BEE9CCC0@DM5PR15MB1676.namprd15.prod.outlook.com
Whole thread Raw
In response to configure PostgreSQL with PERL: Perl version 5.8 or later is required, but this is .  (Andre Mikulec <andre_mikulec@hotmail.com>)
Responses Re: [GENERAL] trying to program in PostgreSQL C a statistics function  (Paul Jungwirth <pj@illuminatedcomputing.com>)
List pgsql-general

SUMMARY
------

I am trying to program in PostgreSQL a statistics function.

My old method in SQL is here.

select ( avg(measure) - 0.0 ) / nullif(stddev_pop(case when measure > 0.00 then 0.00 else measure end ),0) sortino_true from TABLE/VIEW;

The logic is based on 
SORTINO RATIO: ARE YOU CALCULATING IT WRONG?
SEPTEMBER 11, 2013
https://www.rcmalternatives.com/2013/09/sortino-ratio-are-you-calculating-it-wrong/

In PostgreSQL C, how do I get access to the 'X' (data) variable?

DETAILS
-------

I see a similar function with other variables in here.  
But I am not trying to re-program 'stddev_samp'.

float8_stddev_samp ( lines 2741 through 2767 )
https://github.com/postgres/postgres/blob/9a34123bc315e55b33038464422ef1cd2b67dab2/src/backend/utils/adt/float.c

  N     = transvalues[0];
  sumX  = transvalues[1];
  sumX2 = transvalues[2];

The following article explains it and this makes sense. 

Sum of Squares Formula Shortcut
https://www.thoughtco.com/sum-of-squares-formula-shortcut-3126266

I can match article symbols to PostgreSQL C varaibles.

numerator = N * sumX2 -        sumX * sumX;
            N * SIGMA(X**2) - (SIGMA(X))**2

BUT I NEED ...
--------------

However in my case, 
I have this adjustement

"case when  measure > 0.00 then 0.00 else measure end"

So the case seems that I need access to 'X'
but access to sumX and sumX2 are only shown.

How would I get accress to X?

May anyone point me to a simple good working example?

Thanks,
Andre Mikulec
Andre_Mikulec@Hotmail.com



pgsql-general by date:

Previous
From: Steven Grimm
Date:
Subject: Re: [GENERAL] Inconsistent performance with LIKE and bind variable onlong-lived connection
Next
From: Pavel Stehule
Date:
Subject: Re: [GENERAL] Inconsistent performance with LIKE and bind variable onlong-lived connection