From 6e12583400aa0378cc8c6cfdb08beec815369a4f Mon Sep 17 00:00:00 2001 From: Jonathan Strong Date: Tue, 7 Apr 2020 21:44:50 -0400 Subject: [PATCH] postgres query --- pg-size-wt-avg-query.sql | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 pg-size-wt-avg-query.sql diff --git a/pg-size-wt-avg-query.sql b/pg-size-wt-avg-query.sql new file mode 100644 index 0000000..bbd4e30 --- /dev/null +++ b/pg-size-wt-avg-query.sql @@ -0,0 +1,30 @@ +SELECT hr, + bmex / gdax AS ratio +FROM + (SELECT hr, + max(gdax) "gdax", -- max(..) necessary to grab the non-NULL row from two returned + max(bmex) "bmex" -- rows for each hr + FROM + (SELECT hr, + (CASE + WHEN exch=3 THEN wt_avg + END) "gdax", + (CASE + WHEN exch=6 THEN wt_avg + END) "bmex" + FROM + (SELECT hr, + exch, + w_sum / sum_w AS wt_avg + FROM + (SELECT date_trunc('hour', "time") AS hr, + exch, + sum(price * amount) AS w_sum, + sum(amount) AS sum_w + FROM trades + WHERE base=1 -- btc=1 usd=100 + AND quote=100 + AND (exch=3 OR exch=6) -- gdax=3, bmex=6 + GROUP BY 1, 2 + ORDER BY 1, 2) a) b) c + GROUP BY hr) d;