Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save tu-trinh-scale/ff4bd6dd45f8ee0d55bd9cd82c7a55ff to your computer and use it in GitHub Desktop.

Select an option

Save tu-trinh-scale/ff4bd6dd45f8ee0d55bd9cd82c7a55ff to your computer and use it in GitHub Desktop.
WITH fall_semester AS (
-- Identify the most recent fall semester events (Yearly Kickoff and October Meeting)
SELECT e.event_id, e.event_name, e.event_date
FROM Event e
WHERE e.event_name IN ('Yearly Kickoff', 'October Meeting')
AND strftime('%Y', e.event_date) = (
SELECT MAX(strftime('%Y', e2.event_date))
FROM Event e2
WHERE e2.event_name = 'October Meeting'
)
),
adv_budgets AS (
SELECT
MAX(CASE WHEN fs.event_name = 'Yearly Kickoff' THEN b.amount END) AS yk_adv_budget,
MAX(CASE WHEN fs.event_name = 'October Meeting' THEN b.amount END) AS om_adv_budget,
MAX(CASE WHEN fs.event_name = 'Yearly Kickoff' THEN b.amount END) * 1.0 /
MAX(CASE WHEN fs.event_name = 'October Meeting' THEN b.amount END) AS budget_ratio
FROM Budget b
JOIN fall_semester fs ON b.link_to_event = fs.event_id
WHERE b.category = 'Advertisement'
),
oct_meeting_id AS (
SELECT event_id FROM fall_semester WHERE event_name = 'October Meeting'
),
state_expenditures AS (
SELECT
z.state,
SUM(ex.cost) AS total_approved_expenditure,
RANK() OVER (ORDER BY SUM(ex.cost) DESC) AS rnk
FROM Attendance a
JOIN oct_meeting_id omi ON a.link_to_event = omi.event_id
JOIN Member m ON a.link_to_member = m.member_id
JOIN Zip_Code z ON m.zip = z.zip_code
JOIN Expense ex ON ex.link_to_member = m.member_id AND ex.approved = '2'
GROUP BY z.state
)
SELECT
ab.yk_adv_budget AS yearly_kickoff_adv_budget,
ab.om_adv_budget AS october_meeting_adv_budget,
ROUND(ab.budget_ratio, 4) AS how_many_times_larger,
se.state AS highest_expenditure_state,
ROUND(se.total_approved_expenditure, 2) AS total_approved_expenditure
FROM adv_budgets ab
CROSS JOIN state_expenditures se
WHERE se.rnk = 1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment