Skip to content

Commit d936c2b

Browse files
Format SQL in README (#62)
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
1 parent 13aea93 commit d936c2b

File tree

2 files changed

+68
-55
lines changed

2 files changed

+68
-55
lines changed

.pre-commit-config.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,14 @@ repos:
3939
hooks:
4040
- id: sqlfluff-fix
4141
args: [--dialect, sqlite]
42+
- repo: https://github.com/adamtheturtle/doccmd-pre-commit
43+
rev: v2025.1.11
44+
hooks:
45+
- id: doccmd
46+
name: sqlfluff-fix-README
47+
args: [--no-pad-file, --language, sql, --command, sqlfluff fix --dialect sqlite -- README.md]
48+
additional_dependencies: [sqlfluff]
49+
files: README.md
4250
- repo: https://github.com/pre-commit/mirrors-mypy
4351
rev: v1.14.1
4452
hooks:

README.md

Lines changed: 60 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -72,29 +72,30 @@ To get the top 5 payees by spending per budget, you could do:
7272

7373
```sql
7474
WITH
75-
ranked_payees AS (
76-
SELECT
77-
b.name AS budget_name,
78-
p.name AS payee,
79-
SUM(t.amount) / -1000.0 AS net_spent,
80-
ROW_NUMBER() OVER (
81-
PARTITION BY
82-
b.id
83-
ORDER BY
84-
SUM(t.amount) ASC
85-
) AS rnk
86-
FROM
87-
flat_transactions t
88-
JOIN payees p ON t.payee_id = p.id
89-
JOIN budgets b ON t.budget_id = b.id
90-
WHERE
91-
p.name != 'Starting Balance'
92-
AND p.transfer_account_id IS NULL
93-
AND NOT t.deleted
94-
GROUP BY
95-
b.id,
96-
p.id
97-
)
75+
ranked_payees AS (
76+
SELECT
77+
b.name AS budget_name,
78+
p.name AS payee,
79+
SUM(t.amount) / -1000.0 AS net_spent,
80+
ROW_NUMBER() OVER (
81+
PARTITION BY
82+
b.id
83+
ORDER BY
84+
SUM(t.amount) ASC
85+
) AS rnk
86+
FROM
87+
flat_transactions AS t
88+
INNER JOIN payees AS p ON t.payee_id = p.id
89+
INNER JOIN budgets AS b ON t.budget_id = b.id
90+
WHERE
91+
p.name != 'Starting Balance'
92+
AND p.transfer_account_id IS NULL
93+
AND NOT t.deleted
94+
GROUP BY
95+
b.id,
96+
p.id
97+
)
98+
9899
SELECT
99100
budget_name,
100101
payee,
@@ -104,45 +105,50 @@ FROM
104105
WHERE
105106
rnk <= 5
106107
ORDER BY
107-
budget_name,
108-
net_spent DESC
109-
;
108+
budget_name ASC,
109+
net_spent DESC;
110110
```
111111

112112
To get payees with no transactions:
113113

114114
```sql
115+
WITH st AS (
116+
SELECT
117+
budget_id,
118+
payee_id,
119+
MAX(NOT deleted) AS has_active_transaction
120+
FROM
121+
scheduled_flat_transactions
122+
GROUP BY
123+
budget_id,
124+
payee_id
125+
),
126+
127+
t AS (
128+
SELECT
129+
budget_id,
130+
payee_id,
131+
MAX(NOT deleted) AS has_active_transaction
132+
FROM
133+
flat_transactions
134+
GROUP BY
135+
budget_id,
136+
payee_id
137+
)
138+
115139
SELECT DISTINCT
116-
b.name as budget,
117-
p.name as payee
140+
b.name AS budget,
141+
p.name AS payee
118142
FROM
119-
budgets b
120-
JOIN payees p ON b.id = p.budget_id
121-
LEFT JOIN (
122-
SELECT
123-
budget_id,
124-
payee_id,
125-
MAX(NOT deleted) AS has_active_transaction
126-
FROM
127-
flat_transactions
128-
GROUP BY
129-
budget_id,
130-
payee_id
131-
) t ON (
143+
budgets AS b
144+
INNER JOIN payees AS p ON b.id = p.budget_id
145+
LEFT JOIN t
146+
ON (
132147
p.id = t.payee_id
133148
AND p.budget_id = t.budget_id
134149
)
135-
LEFT JOIN (
136-
SELECT
137-
budget_id,
138-
payee_id,
139-
MAX(NOT deleted) AS has_active_transaction
140-
FROM
141-
scheduled_flat_transactions
142-
GROUP BY
143-
budget_id,
144-
payee_id
145-
) st ON (
150+
LEFT JOIN st
151+
ON (
146152
p.id = st.payee_id
147153
AND p.budget_id = st.budget_id
148154
)
@@ -158,7 +164,6 @@ WHERE
158164
OR NOT st.has_active_transaction
159165
)
160166
ORDER BY
161-
1,
162-
2
163-
;
167+
budget,
168+
payee;
164169
```

0 commit comments

Comments
 (0)