Skip to content

Commit 8d2e378

Browse files
authored
Make SQL examples more concise (#172)
1 parent 72faf6d commit 8d2e378

1 file changed

Lines changed: 18 additions & 39 deletions

File tree

README.md

Lines changed: 18 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -81,41 +81,27 @@ The DB path is documented [above](#db-path).
8181
To 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

10898
SELECT
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
163143
ORDER 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

Comments
 (0)