@@ -81,41 +81,27 @@ The DB path is documented [above](#db-path).
8181To get the top 5 payees by spending per plan, you could do:
8282
8383``` sql
84- WITH
85- ranked_payees AS (
84+ WITH ranked_payees AS (
8685 SELECT
8786 pl .name AS plan_name
8887 , t .payee_name AS payee
8988 , SUM (t .amount_major ) AS net_spent
90- , ROW_NUMBER() OVER (
91- PARTITION BY
92- pl .id
93- ORDER BY
94- SUM (t .amount ) ASC
95- ) AS rnk
96- FROM
97- flat_transactions AS t
98- INNER JOIN plans AS pl
99- ON t .plan_id = pl .id
89+ , ROW_NUMBER()
90+ OVER (PARTITION BY pl .id ORDER BY SUM (t .amount ) ASC )
91+ AS rnk
92+ FROM flat_transactions AS t INNER JOIN plans AS pl ON t .plan_id = pl .id
10093 WHERE
101- t .payee_name != ' Starting Balance'
102- AND t .transfer_account_id IS NULL
103- GROUP BY
104- pl .id
105- , t .payee_id
94+ t .payee_name != ' Starting Balance' AND t .transfer_account_id IS NULL
95+ GROUP BY pl .id , t .payee_id
10696)
10797
10898SELECT
10999 plan_name
110100 , payee
111101 , net_spent
112- FROM
113- ranked_payees
114- WHERE
115- rnk <= 5
116- ORDER BY
117- plan_name ASC
118- , net_spent DESC
102+ FROM ranked_payees
103+ WHERE rnk <= 5
104+ ORDER BY plan_name ASC , net_spent DESC
119105;
120106```
121107
@@ -130,14 +116,12 @@ FROM (
130116 p .plan_id
131117 , p .name
132118 FROM payees AS p
133- LEFT JOIN flat_transactions AS ft
134- ON
135- p .plan_id = ft .plan_id
136- AND p .id = ft .payee_id
137- LEFT JOIN scheduled_flat_transactions AS sft
138- ON
139- p .plan_id = sft .plan_id
140- AND p .id = sft .payee_id
119+ LEFT JOIN
120+ flat_transactions AS ft
121+ ON p .plan_id = ft .plan_id AND p .id = ft .payee_id
122+ LEFT JOIN
123+ scheduled_flat_transactions AS sft
124+ ON p .plan_id = sft .plan_id AND p .id = sft .payee_id
141125 WHERE
142126 TRUE
143127 AND ft .payee_id IS NULL
@@ -146,20 +130,16 @@ FROM (
146130 AND p .name != ' Reconciliation Balance Adjustment'
147131 AND p .name != ' Manual Balance Adjustment'
148132 AND NOT p .deleted
149-
150133 UNION ALL
151-
152134 SELECT
153135 plan_id
154136 , name
155137 FROM payees
156138 WHERE NOT deleted
157139 GROUP BY plan_id, name
158140 HAVING COUNT (* ) > 1
159-
160141) AS dupes
161- INNER JOIN plans AS pl
162- ON dupes .plan_id = pl .id
142+ INNER JOIN plans AS pl ON dupes .plan_id = pl .id
163143ORDER BY " plan" , payee
164144;
165145```
@@ -270,8 +250,7 @@ WITH interest_by_account AS (
270250 -- Additional interest is per-tax-return not per-YNAB-plan. Only add
271251 -- additional interest to one plan's output to avoid double counting.
272252 , CASE
273- WHEN row_num != 1 THEN interest_in_ynab
274- WHEN
253+ WHEN row_num != 1 THEN interest_in_ynab WHEN
275254 interest_with_estimate
276255 < CAST(COALESCE(@interest_reporting_threshold, 10 ) AS REAL )
277256 THEN 0
0 commit comments