financial
Financial aggregate functions
Repository
intgr/pg_financial
https://github.com/intgr/pg_financial
Source
pg_financial-1.0.1.tar.gz
pg_financial-1.0.1.tar.gz
Overview
| Package | Version | Category | License | Language |
|---|---|---|---|---|
pg_financial | 1.0.1 | FUNC | PostgreSQL | C |
| ID | Extension | Bin | Lib | Load | Create | Trust | Reloc | Schema |
|---|---|---|---|---|---|---|---|---|
| 4840 | financial | No | Yes | No | Yes | No | Yes | - |
| Related | topn quantile lower_quantile count_distinct omnisketch ddsketch tdigest first_last_agg |
|---|
Version
| Type | Repo | Version | PG Ver | Package | Deps |
|---|---|---|---|---|---|
| EXT | PIGSTY | 1.0.1 | 1817161514 | pg_financial | - |
| RPM | PIGSTY | 1.0.1 | 1817161514 | pg_financial_$v | - |
| DEB | PIGSTY | 1.0.1 | 1817161514 | postgresql-$v-pg-financial | - |
Build
You can build the RPM / DEB packages for pg_financial using pig build:
pig build pkg pg_financial # build RPM / DEB packages
Install
You can install pg_financial directly. First, make sure the PGDG and PIGSTY repositories are added and enabled:
pig repo add pgsql -u # Add repo and update cache
Install the extension using pig or apt/yum/dnf:
pig install pg_financial; # Install for current active PG version
pig ext install -y pg_financial -v 18 # PG 18
pig ext install -y pg_financial -v 17 # PG 17
pig ext install -y pg_financial -v 16 # PG 16
pig ext install -y pg_financial -v 15 # PG 15
pig ext install -y pg_financial -v 14 # PG 14
dnf install -y pg_financial_18 # PG 18
dnf install -y pg_financial_17 # PG 17
dnf install -y pg_financial_16 # PG 16
dnf install -y pg_financial_15 # PG 15
dnf install -y pg_financial_14 # PG 14
apt install -y postgresql-18-pg-financial # PG 18
apt install -y postgresql-17-pg-financial # PG 17
apt install -y postgresql-16-pg-financial # PG 16
apt install -y postgresql-15-pg-financial # PG 15
apt install -y postgresql-14-pg-financial # PG 14
Create Extension:
CREATE EXTENSION financial;
Usage
Provides the XIRR (Irregular Internal Rate of Return) aggregate function, similar to XIRR in spreadsheet programs.
CREATE EXTENSION financial;
Functions
| Function | Description |
|---|---|
xirr(amount float8, date timestamptz [, guess float8] ORDER BY date) | Compute Irregular Internal Rate of Return |
Examples
-- Basic XIRR calculation
SELECT xirr(amount, time ORDER BY time) FROM transaction;
-- 0.0176201237088334
-- With explicit initial guess (Excel-compatible default is 0.1)
SELECT xirr(amount, time, 0.1 ORDER BY time) FROM transaction;
-- Per-portfolio XIRR
SELECT portfolio, xirr(amount, time ORDER BY time)
FROM transaction
GROUP BY portfolio;
-- As a window function
SELECT xirr(amount, time) OVER (ORDER BY time)
FROM transaction;
Returns NULL when Newton’s method fails to converge. Providing a better guess may help in some cases.
Feedback
Was this page helpful?
Thanks for the feedback! Please let us know how we can improve.
Sorry to hear that. Please let us know how we can improve.