Write a single SQL query (PostgreSQL) to detect weekly chargeback spikes by country and industry. Week starts Monday (use date_trunc('week', ts) with ISO weeks). Schema and sample data:
Tables
Sample rows merchants +-------------+--------------+----------+ | merchant_id | country_code | industry | +-------------+--------------+----------+ | 1 | US | SaaS | | 2 | US | Retail | | 3 | DE | Retail | | 4 | US | SaaS | +-------------+--------------+----------+
payments +------------+-------------+---------------------+------------+-----------+ | payment_id | merchant_id | created_at | amount_usd | status | +------------+-------------+---------------------+------------+-----------+ | 101 | 1 | 2025-08-18 10:00:00 | 120.00 | succeeded | | 102 | 1 | 2025-08-19 11:00:00 | 130.00 | succeeded | | 103 | 2 | 2025-08-26 09:00:00 | 80.00 | failed | | 104 | 2 | 2025-08-26 12:00:00 | 200.00 | succeeded | | 105 | 3 | 2025-08-27 13:00:00 | 75.00 | succeeded | | 106 | 4 | 2025-09-02 10:00:00 | 500.00 | succeeded | | 107 | 1 | 2025-09-02 12:00:00 | 150.00 | succeeded | +------------+-------------+---------------------+------------+-----------+
chargebacks +----------------+------------+---------------------+ | chargeback_id | payment_id | created_at | +----------------+------------+---------------------+ | 9001 | 101 | 2025-09-01 08:00:00 | | 9002 | 104 | 2025-09-08 09:00:00 | +----------------+------------+---------------------+
Task Return, for each (week_start, country_code, industry):