select 'Import' as TBL, count(1) as REC_CNT from public.budgetimport union all select 'Detail' as TBL, count(1) as REC_CNT from public.budgetdetails; select acct.acct_friendly_name, count(1) as "Number of Transactions" from public.budgetdetails trx inner join public.accounts acct using (acct_id) group by acct.acct_friendly_name select acct.acct_friendly_name, extract( year from trx.trx_date ) trx_year, lower(trx.trx_description) trx_description, avg(abs(trx.trx_amount))::numeric(7, 2) avg_amt, count(trx.trx_description) rec_cnt, min(abs(trx.trx_amount))::numeric(7, 2) min_amt, max(abs(trx.trx_amount))::numeric(7, 2) max_amt, sum(abs(trx.trx_amount))::numeric(9, 2) ttl_amt from public.budgetdetails trx inner join public.accounts acct using (acct_id) where trx.trx_date <= current_date and abs(trx.trx_amount) > 0 -- and lower(acct.account_friendly_name) like '%savings' group by trx_year, acct.acct_friendly_name, lower(trx_description) having count(1) > 2 order by trx_year desc, acct.acct_friendly_name, rec_cnt desc, lower(trx.trx_description); select bal.account_friendly_name, bal.transaction_date, bal.transaction_day_of_week, age (transaction_date, current_date) as days_from_today, bal.transaction_description, bal.transaction_amount, bal.running_bal from public.runbal bal where lower(account_friendly_name) = 'joint checking' and transaction_date between (current_date - interval '1 week') and (current_date + interval '3 weeks')::date; select * from public.get_transactions_for_period ( 'joint checking', '3/1/2023'::date, '3/31/2023'::date )