/weighted_stats

Simple weighted mean and average aggregates for PostgreSQL

Primary LanguageCOtherNOASSERTION

Weighted Stats extension for PostgreSQL

This extension provides weighted statistical aggregate functions for PostgreSQL. It is based on the work of Ronan Dunklau and Peter Eisentraut in the weighted_mean package. Thanks as usual to Andrew Gierth, who showed how to do these things efficiently.

The weighted stats are defined as two-column aggregation functions. The first column contains the measure to be used. The second contains the weight of each measure.

This extension is implemented as a C library.

Installation

You can either install it with the pgxn client:

pgxn install weighted_stats

Or from source:

git clone git://github.com/davidfetter/weighted_stats.git make && sudo make install

Then, create the extension in the specific database:

CREATE extension weighted_stats;

Usage

select weighted_stats(unitprice, quantity) from sales;

This is equivalent to:

select case when sum(quantity) = 0 then 0 else sum(unitprice * quantity) / sum(quantity) end from sales;